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

慕娘9325324
TA贡献1783条经验 获得超4个赞
使用内置功能getattr。
getattr(对象,名称 [,默认 ])
返回object的命名属性的值。名称必须是字符串。如果字符串是对象属性之一的名称,则结果是该属性的值。例如,getattr(x, 'foobar')等效于x.foobar。如果指定的属性不存在,则返回默认值(如果提供),否则引发AttributeError。

侃侃尔雅
TA贡献1801条经验 获得超16个赞
如果someobject具有名为foostringthen 的属性
def get_foo(someobject, foostring):
return getattr(someobject,foostring)
或者,如果您想为所提供的对象设置属性,则:
def set_foo(someobject, foostring, value):
return setattr(someobject,foostring, value)

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