我該如何完成這項工作:def get_foo(someobject, foostring): return someobject.foostringIE瀏覽器:如果我這樣做,get_foo(obj, "name")它應該被調(diào)用obj.name(請參閱輸入作為字符串,但我將其稱為attritube。謝謝
3 回答

慕娘9325324
TA貢獻1783條經(jīng)驗 獲得超4個贊
使用內(nèi)置功能getattr。
getattr(對象,名稱 [,默認 ])
返回object的命名屬性的值。名稱必須是字符串。如果字符串是對象屬性之一的名稱,則結(jié)果是該屬性的值。例如,getattr(x, 'foobar')等效于x.foobar。如果指定的屬性不存在,則返回默認值(如果提供),否則引發(fā)AttributeError。

侃侃爾雅
TA貢獻1801條經(jīng)驗 獲得超16個贊
如果someobject具有名為foostringthen 的屬性
def get_foo(someobject, foostring):
return getattr(someobject,foostring)
或者,如果您想為所提供的對象設(shè)置屬性,則:
def set_foo(someobject, foostring, value):
return setattr(someobject,foostring, value)

慕工程0101907
TA貢獻1887條經(jīng)驗 獲得超5個贊
您應該使用setattr和getattr:
setattr(object,'property',value)
getattr(object,'property',default)
添加回答
舉報
0/150
提交
取消