package1/package1_sub1/init.py
__all__ = ['demoo']
package1/demo.py
from package1_sub1 import *
print(demoo.a)
如上,我在package1/package1_sub1/init.py里写上了__all__=[‘demoo’]后,再在demo.py里直接使用demoo.a是可以的,运行正常。
但是如果没有写上__all__=[‘demoo.py’](空的__init__.py文件),运行就会出现如下提示:
- NameError: name ‘demoo’ is not defined.
all__属性不是用来限制的吗,如果__init.py中没有对__all__的范围指定一个具体列表,那么在导入该包的时候,应该是导入其下的所有模块才对吧。
可是现在看来,如果想要直接一次性导入所有package1_sub1包里的模块,还必须把所有模块都添加到所属包的__all__的列表里?