python的每個模塊的包中,都有一個__init__.py文件,有了這個文件,我們才能導入這個目錄下的module。
那么,__init__.py還有什么別的功能呢?
其實,__init__.py里面還是可以有內容的,我們在導入一個包時,實際上導入了它的__init__.py文件。
我們可以再__init__.py文件中再導入其他的包,或者模塊。
[python]
import readers
import writers
import commands
import users
import meta
import auth
import admin
這樣,當我們導入這個包的時候,__init__.py文件自動運行。幫我們導入了這么多個模塊,我們就不需要將所有的import語句寫在一個文件里了,也可以減少代碼量。
不需要一個個去導入module了。
__init__.py 中還有一個重要的變量,叫做 __all__。我們有時會使出一招“全部導入”,也就是這樣:
from PackageName import *
這時 import 就會把注冊在包 __init__.py 文件中 __all__ 列表中的子模塊和子包導入到當前作用域中來。比如:
#文件 __init__.py
__all__ = ["Module1", "Module2", "subPackage1", "subPackage2"]
