from os.path import dirname, basename, isfile, join
import glob
modules = glob.glob(join(dirname(__file__), "*.py"))
__all__ = [ basename(f)[:-3] for f in modules if isfile(f) and not f.endswith('__init__.py')]
import os
for module in os.listdir(os.path.dirname(__file__)):
if module == '__init__.py' or module[-3:] != '.py':
continue
__import__(module[:-3], locals(), globals())
del module
将
__all__
变量添加到__init__.py
中,该变量包含:另见http://docs.python.org/tutorial/modules.html
列出当前文件夹中的所有python(
.py
)文件,并将它们作为__all__
变量放入__init__.py
2017年更新:您可能希望改用^{} 。
通过添加
__init__.py
,使Foo目录成为一个包。在__init__.py
中添加:由于您希望它是动态的(这可能是个好主意,也可能不是个好主意),请使用list dir列出所有py文件,并使用以下方法导入它们:
然后,根据你的代码:
现在您可以使用
等等,
from Foo import *
不是一个好主意,有几个原因,包括名称冲突和难以分析代码。相关问题 更多 >
编程相关推荐