import的兩個問題
- 複雜package的import太過冗長.
- package內的import可能出現模擬兩可的情形,當package和收尋path有相同名稱的module 時,必須有明確的機制決議.
python 2.4之後現在可以不需要將冗長的import敘述會了好看拆成拆成兩行了(如下)
# before python 2.4
from Tkinter import Tk, Frame, Button, Entry, Canvas
form Tkinter import Text, LEFT, DISABLED, RIDGE
# after python 2.4
from Tkinter import (Tk, Frame, Button, Entrym Convas,
Text, LEFT, DISABLED, RIDGE)
從python 2.5 開始可以使用新的import方式,在2.5需要明確載入.
from __future__ import absolute_import
使用 absolute_import 後就必須以'絕對路徑'來import module, 也就是說package內
import foo
是不合法的, 必須要使用絕對路徑ex:
# 類似下面的絕對路徑
import mypackage.function1.foo
閒麻煩的畫可以使用 relative imports,
from .foo import bar
from . import foo
沒有留言:
張貼留言