如果选择使用包导入,就必须遵循一条约束:包导入的路径中的每一个目录中一定要包含__init__.py文件,否则导入包会失败。
__init__.py可以包含python代码,就像普通的模块文件。这类文件从某种程度上讲就像是python的一种声明,它完全可以是空的。
python首次导入某个目录时,会自动执行__init__.py中的所有程序代码。因此这类文件自然就是放置包内文件所需初始化的代码的场所。
#dir1/__init__.py
print "dir1 init"
x = 1
#dir1/dir2/__init__.py
print "dir2 init"
y = 2
#dir1/dir2/mod.py
print "in mod.py"
z = 3运行结果:
>>> import dir1.dir2.mod
dir1 init
dir2 init
in mod.py
>>>dir1.x
1
>>>dir1.dir2.y
2
>>>dir1.dir2.mod.z
3
本文详细介绍了Python中如何通过包导入模块,并强调了__init__.py文件的作用及其实现方式。__init__.py文件不仅可以是空的,还可以包含初始化代码,当首次导入包时这些代码会被执行。
1093

被折叠的 条评论
为什么被折叠?



