我该如何完成这项工作:def get_foo(someobject, foostring): return someobject.foostringIE浏览器:如果我这样做,get_foo(obj, "name")它应该被调用obj.name(请参阅输入作为字符串,但我将其称为attritube。谢谢
3 回答

慕容3067478
TA贡献1773条经验 获得超3个赞
使用内置功能getattr。
getattr(对象,名称 [,默认 ])
返回object的命名属性的值。名称必须是字符串。如果字符串是对象属性之一的名称,则结果是该属性的值。例如,getattr(x, 'foobar')等效于x.foobar

莫回无
TA贡献1865条经验 获得超7个赞
如果someobject具有名为foostringthen 的属性
def get_foo(someobject, foostring):
return getattr(someobject,foostring)
或者,如果您想为所提供的对象设置属性,则:
def set_foo(someobject, foostring, value):
return setattr(someobject,foostring, value)
试试吧

ABOUTYOU
TA贡献1812条经验 获得超5个赞
您应该使用setattr和getattr:
setattr(object,'property',value)
getattr(object,'property',default)
添加回答
举报
0/150
提交
取消