在编程运行时,你如何动态向包中添加 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-10-2019

396 浏览量

开启您的 职业生涯

完成课程认证

开始
广告
© . All rights reserved.