我有一组模块,我希望能够根据给予该函数的参数在函数内调用其中一个模块。我试过这个,但它不起作用:
from my.set import modules
def get_modules(sub_mod):
variable = sub_mod
mod_object = modules.variable
function(mod_object)
我明白了:
AttributeError: 'module' object has no attribute 'variable'
它没有接受我给它的参数,这是my.set.modules下存在的模块的名称。所以,如果我调用函数get_modules(name_of_mod_under_modules),我希望行modules.variable为“modules.name_of_mod_under_modules”,然后我可以将其作为传递给mod_object的对象。
答案 0 :(得分:3)
在您当前的代码中,您正在寻找不存在的modules.variable
,因此错误!这不是你获得对象属性的方式。
要实现您想要的效果,请使用getattr
功能。
mod_object = getattr(modules, variable)