我想使用importlib重新加载其名称是动态生成的模块。

例子:

import sys

def some_func():
    return "sys"

want_reload = some_func()

现在如何使用变量sys重新加载want_reload模块?我不能直接将其提供给importlib.reload(),因为它说它需要一个模块,而不是str。

如果提供了无效的字符串或未加载的模块,则可能会更好,例如"........",它引发一个异常。

最佳答案

importlib.import_module()不会重新加载,但是即使已加载,也会向模块返回一个引用:

import sys
import importlib

def some_func():
    return "sys"

want_reload = some_func()
want_reload_module = importlib.import_module(want_reload)
importlib.reload(want_reload_module)

关于python-3.x - 从字符串importlib.reload模块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52134490/

10-09 17:17