2014/02/02

Python 3.3 Package

Package可以視為資料夾,每個資料夾底下可以包含多個類別以及Package
為了讓編譯器知道Package內有多少個類別,必須定義一個名為『__init__.py』的檔案

我們先建立一個資料夾名為Python,並在Python底下在建立one和two資料夾
並且在Python資料夾內建立一個名為『__init__.py』的檔案,建立test.py



__init__.py的程式碼如下:

__all__ = [ "one", "two" ]

all屬性是告知編譯器Python的Package內含有one以及two的Package

將__init__.py複製到one以及two資料夾底下,並修改為


#one
__all__ = [ "test2" ]


#two
__all__ = [ "test2" ]




在one以及two資料夾底下在建立test2.py,程式碼如下:

#one

def a():
 print("***")

def b():
 print("---")

def c():
 print("+++")



#two

def a():
 print("123")

def b():
 print("456")

def c():
 print("789")


而Python資料夾底下的test.py程式碼如下:
import one.test2 as one
import two.test2 as two


one.a()
one.b()
one.c()

two.a()
two.b()
two.c()


編譯前,樹狀結構如下:


執行結果:


編譯後,樹狀結構如下:


『__pycache__』資料夾是為了快速載入模組,且相容於更低的版本


參考資料:
http://docs.python.org/3/tutorial/modules.html#packages