本文介绍了如何使用Importlib从模块导入*?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望实现与使用from module import *
相同的结果。
此问题Importing module with a local name using importlib介绍如何操作import module as mod
,两者相关但不相同。
推荐答案
若要模拟from X import *
,您必须导入模块,然后将适当的名称合并到全局命名空间中。
# get a handle on the module
mdl = importlib.import_module('X')
# is there an __all__? if so respect it
if "__all__" in mdl.__dict__:
names = mdl.__dict__["__all__"]
else:
# otherwise we import all names that don't begin with _
names = [x for x in mdl.__dict__ if not x.startswith("_")]
# now drag them in
globals().update({k: getattr(mdl, k) for k in names})
这篇关于如何使用Importlib从模块导入*?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!