__init__.py
当导入包含它的包(目录)时,所有导入都可用。
例:
./dir/__init__.py
:
import something
./test.py
:
import dir
# can Now use dir.something
编辑:忘了提及,__init__.py
您第一次从该目录导入任何模块时,中的代码就会运行。因此,通常是放置任何程序包级初始化代码的好地方。
EDIT2:dgrant指出了我的示例中可能存在的混乱。In__init__.py
import something
可以导入任何模块,而不必从包装中导入。例如,我们可以将其替换为import datetime
,然后在顶层test.py
都可以使用以下两个代码片段:
import dir
print dir.datetime.datetime.Now()
和
import dir.some_module_in_dir
print dir.datetime.datetime.Now()
最重要的是:在__init__.py
导入包或包中的模块时,在包命名空间中将自动提供在中分配的所有名称(无论是导入的模块,函数还是类)。