我试图将我的一个对象的名称作为函数中的变量传递,但是在执行该函数时,它只被识别为字符串,返回以下错误:
AttributeError: 'str' object has no attribute 'method'
我的代码如下:
def addTask(arg1, arg2):
arg1.method('arg2')
addTask('object-type','foo')
所以对象类型作为字符串传递,但我需要将它转换为对象。我已经尝试过eval,但这不起作用,想知道是否有人可以帮助我。
感谢。
答案 0 :(得分:1)
这就是我处理类似事情的方式:
callables = {
'callable_name1': callable_name1,
'callable_name2': callable_name2,
'callable_name3': callable_name3,
'callable_name4': callable_name4,
'object-type': object_type,
}
def addTask(arg1, arg2):
callable = callables[arg1]
callable.method('arg2')