package的檔案階層系統
Sound/ Top-level package
__init__.py Initialize the sound package
Formats/ Subpackage for file format conversions
__init__.py
wavread.py
wavwrite.py
aiffread.py
aiffwrite.py
auread.py
auwrite.py
...
Effects/ Subpackage for sound effects
__init__.py
echo.py
surround.py
reverse.py
...
Filters/ Subpackage for filters
__init__.py
equalizer.py
vocoder.py
karaoke.py
...
**__init__.py的必要性
為使Python能把這個目錄架構當作是一個package,上面的 __init__.py 這個檔是必須要的。這是為了要避免有些檔案目錄的名字是很普通的名字(例如 " string" ),這會讓直譯器誤認正確的module名稱而找不到在搜尋路徑中的module。在最簡單的例子裡, __init__.py 可以是一個空的檔案。但是你也可以讓這個檔來做一些package初始化的動作,或者設定
__all__ 這個變數(稍後會再提)。
**import 敘述中的要點
值得注意的是當你使用
from package import item 這樣的敘述時,你所import的東西可以是一個package中的module(或者是subpackage),或者是在module裡面所定義的名稱,例如變數、類別或是函式等等。 import 敘述會先測試是否這個東西真的存在於這個package,如果沒有的話,會假設這是一個module然後試著導入(load)之。如果還失敗的話,就會引發一個 ImportError 的例外狀況(exception)。相反的是,當你使用
import item.subitem.subsubitem 這樣的敘述時,除了最後一個東西(item)以外,其餘的都必須是package。最後一個可以是 module 或是 package ,但是不能是一個定義在module裡面的類別、成員或函式。
沒有留言:
張貼留言