You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将对象属性引用传递给Python函数?

解决通过字符串获取对象属性值的问题

你的代码报错原因是:在property_value函数里,o.p是试图直接访问对象o的p属性,但你传入的参数p是字符串'my_property',并非对象的属性名,所以Python找不到名为p的属性,抛出AttributeError。

要实现通过传入属性名字符串获取对象属性值,Python提供了内置函数getattr(),它可以接收对象和属性名字符串作为参数,返回对应属性的值。

修改后的代码如下:

class my_class:
    my_property = 0

c = my_class()
print(c.my_property)

def property_value(o, p):
    return getattr(o, p)

my_property = 'my_property'
print(property_value(c, my_property))

运行后会正常输出:

0
0

如果需要处理属性不存在的情况,可以给getattr()添加第三个参数作为默认值,比如:

def property_value(o, p):
    return getattr(o, p, '属性不存在')

这样当传入的属性名不存在时,会返回设置的默认值,而不是抛出异常。

内容的提问来源于stack exchange,提问作者Clodoaldo Pinto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 18:22:02