Python - 调用给定字符串中的一个实例?

2024-09-29 18:33:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从实例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: 实例函数no字符串字典objectfoobar
1条回答
网友
1楼 · 发布于 2024-09-29 18:33:48

最好的办法是有一本字典或类似的结构。 但是你可以使用eval,这是邪恶的。或者您可以从locals()字典获取实例:

getattr(locals()[instance_name], attribute_name)

我会考虑重新设计你的代码。必须有一个更好的解决方案作为评估或当地人。。。就像一本字典

相关问题 更多 >

    热门问题