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

如何在Python函数中调用类属性?解决AttributeError报错

修复动态获取对象属性的AttributeError错误

错误原因

你的printer函数中,student.parameter_name的写法是直接查找对象上名为parameter_name的属性,而非将传入的parameter_name变量值作为属性名去查找,这就导致Python找不到对应属性,抛出AttributeError。

修复方案

使用Python内置的getattr()函数,它支持动态传入属性名来获取对象属性,这是处理这类需求的标准方式:

修改后的函数:

def printer(student_obj, parameter_name):
    print(getattr(student_obj, parameter_name))

注意:将参数名student改为student_obj是为了避免和你的类名student冲突,提升代码可读性。

调用时需要传入字符串形式的属性名(之前直接写age会被当作未定义的变量,引发NameError):

s1 = student('John', '14', '9927')
printer(s1, 'age')  # 输出:14
printer(s1, 'name') # 输出:John

完善版本(添加错误处理)

如果担心传入不存在的属性名,可以加入异常捕获,避免程序崩溃:

def printer(student_obj, parameter_name):
    try:
        print(getattr(student_obj, parameter_name))
    except AttributeError:
        print(f"student对象不存在'{parameter_name}'属性")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:05:35