如果您有模块对象,则可以模仿逻辑
import *用法,如下所示:
module_dict = my_module.__dict__try: to_import = my_module.__all__except AttributeError: to_import = [name for name in module_dict if not name.startswith('_')]globals().update({name: module_dict[name] for name in to_import})但是,这几乎肯定是一个非常糟糕的主意。您将毫不客气地踩着任何具有相同名称的现有变量。当您
from blah import*正常执行此操作时,这已经够糟糕的了,但是当您动态执行此操作时,关于哪些名称可能会冲突的不确定性更大。最好只是导入
my_module,然后使用常规属性访问(例如
my_module.someAttr)
getattr从中访问所需的内容,或者如果需要动态访问其属性,则更好。



