在
my_modules文件夹中,添加一个
__init__.py文件以使其成为正确的程序包。在该文件中,您可以在文件的全局范围内注入每个模块的全局变量
__init__.py,从而在导入模块时使它们可用(在将全局
__all__变量的名称也添加到变量之后):
__all__ = []import pkgutilimport inspectfor loader, name, is_pkg in pkgutil.walk_packages(__path__): module = loader.find_module(name).load_module(name) for name, value in inspect.getmembers(module): if name.startswith('__'): continue globals()[name] = value __all__.append(name)
现在,不要做:
from my_modules.class1 import Stuff
您可以这样做:
from my_modules import Stuff
或将所有内容导入全局范围,这似乎是您想要执行的 *** 作:
from my_modules import *
这种方法的问题在于,类之间会相互覆盖,因此,如果提供了两个模块
Foo,则只能使用最后一个导入的模块。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)