如何在编程运行时动态添加 Python 模块到包中?


要动态导入 Python 模块,你可以使用 importlib 包的 import_module(moduleName) 函数。你需要将 moduleName 作为字符串。例如,

>>> from importlib import import_module
>>> moduleName = "os"
>>> globals()[moduleName] = import_module(moduleName)

如果你想动态导入一个模块列表,你可以从 for 循环中调用它。例如,

>>> import importlib
>>> modnames = ["os", "sys", "math"]
>>> for lib in modnames:
...     globals()[lib] = importlib.import_module(lib)

globals() 调用会返回一个字典。我们可以为导入模块后返回给我们的对象设置每个库的 lib 键。

如果你已经导入了包,现在想要动态导入它的一个模块,你仍然可以使用相同的功能并获得预期结果。你要导入的模块应该有它的全名,而不仅仅是模块名。例如,

>>> import importlib
>>> pack = 'datetime'
>>> mod = 'date'
>>> globals()[pack] = importlib.import_module(pack)
>>> globals()[pack + '.' + mod] = importlib.import_module(pack + '.' + mod)

更新于: 01-Oct-2019

394 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.