__all__
很好-它有助于指导导入语句,而无需自动导入模块http://docs.python.org/tutorial/modules.html#importing-from-a- package
使用__all__
和import *
是多余的,仅__all__
需要
我认为import *
在__init__.py
导入软件包中使用的最强大的理由之一是能够重构已经成长为多个脚本的脚本,而又不会破坏现有的应用程序。但是,如果您从一开始就设计一个包装。我认为最好将__init__.py
文件留空。
例如:
foo.py - contains classes related to foo such as fooFactory, tallFoo, shortFoo
然后应用程序增长,现在是整个文件夹
foo/
__init__.py
foofactories.py
tallFoos.py
shortfoos.py
mediumfoos.py
santaslittlehelperfoo.py
superawsomefoo.py
anotherfoo.py
然后初始化脚本可以说
__all__ = ['foofactories', 'tallFoos', 'shortfoos', 'medumfoos',
'santaslittlehelperfoo', 'superawsomefoo', 'anotherfoo']
# deprecated to keep older scripts who import this from breaking
from foo.foofactories import fooFactory
from foo.tallfoos import tallFoo
from foo.shortfoos import shortFoo
因此编写的执行以下操作的脚本在更改期间不会中断:
from foo import fooFactory, tallFoo, shortFoo