版權聲明

所有的部落格文章都可以在右邊[blog文章原始檔案]下載最原始的文字檔案,並依你高興使用 docutil 工具轉換成任何對應的格式方便離線閱覽,除了集結成書販賣歡迎任意取用,引用

(PEP 328) Absolute import

import的兩個問題

  1. 複雜package的import太過冗長.
  2. 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

沒有留言:

Related Posts with Thumbnails