在 Python 中使用变量名的模块

Using a module with variable name in Python

我想运行一个带有变量名的模块函数,例如:

Plugins.SomeUnknownName.function() 不知道他们的名字,但 Plugins..function() 保持不变。

我已经尝试了几种方法,例如 plugin = 'Plugins.' + unknown_plugin_name + '.function()'

plugin_name = "SomePlugin"

Plugins.plugin_name.function()

但我不知道更多。

也许有人知道如何解决这个问题。

也是我第一次栈溢出post,如有不妥请指正

您可以使用getattr来传递字符串名称。以 numpy 为例,正常用法是这样的

>>> import numpy
>>> numpy.random.randint(1, 5)
2

现在类似于你的例子

>>> getattr(numpy, 'random').randint(1, 5)
2

所以申请你的案例

getattr(Plugins, 'plugin_name').function()