我想从实例foo调用函数bar(),如下所示:
foo.bar()
但实例名和函数名都来自给定的字符串。我尝试了getattr,但它只允许我对函数使用字符串,而不是实例:
strbar = 'bar'
getattr(foo, strbar)()
我想做的是:
strfoo = 'foo'
strbar = 'bar'
getattr(strfoo, strbar)()
但它给了我:
AttributeError: 'str' object has no attribute 'bar'
我知道字典是一种选择,但那使我写了一本很长的字典
Tags:
最好的办法是有一本字典或类似的结构。 但是你可以使用
eval
,这是邪恶的。或者您可以从locals()
字典获取实例:我会考虑重新设计你的代码。必须有一个更好的解决方案作为评估或当地人。。。就像一本字典
相关问题 更多 >
编程相关推荐