您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python:如何从模块动态导入所有方法和属性

Python:如何从模块动态导入所有方法和属性

如果您有模块对象,则可以模仿逻辑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.someAttrgetattr从中访问所需的内容,或者如果需要动态访问其属性,则更好。

python 2022/1/1 18:26:16 有450人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶