Python 字符串到属性[重复]
- 2025-03-05 09:14:00
- admin 原创
- 78
问题描述:
此代码不起作用:
def get_foo(someobject, foostring):
return someobject.foostring
我希望当我调用 时get_foo(obj, "name")
,能够得到obj.name
返回值。我该如何实现呢?
解决方案 1:
使用内置函数getattr
。
getattr (对象,名称[,默认] )
返回对象的命名属性的值。name必须是字符串。如果字符串是对象属性之一的名称,则结果为该属性的值。例如,
getattr(x, 'foobar')
相当于x.foobar
。如果命名属性不存在,则返回default(如果提供),否则引发AttributeError 。
解决方案 2:
如果有一个名为thensomeobject
的属性foostring
def get_foo(someobject, foostring):
return getattr(someobject,foostring)
或者如果您想为提供的对象设置一个属性,那么:
def set_foo(someobject, foostring, value):
return setattr(someobject,foostring, value)
尝试一下
解决方案 3:
您应该使用 setattr 和 getattr:
setattr(object,'property',value)
getattr(object,'property',default)
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD