getattr()用于动态获取对象属性,若属性不存在可返回默认值而不报错。例如getattr(p, 'name')返回"Alice",getattr(p, 'gender', '未知')返回"未知",常用于反射和通用函数编写。

在 Python 中,getattr() 是一个内置函数,用来获取对象的某个属性值。如果该属性存在,就返回它的值;如果不存在,可以提供一个默认值,避免程序报错。
基本语法
getattr(object, name[, default])
- object:目标对象
- name:属性名,字符串形式
- default(可选):如果属性不存在时返回的默认值。不提供且属性不存在时会抛出 AttributeError
实际用法示例
假设有一个简单的类:
class Person:def __init__(self):
self.name = "Alice"
self.age = 25
使用 getattr() 获取属性:
自从百度屏蔽淘宝客网站、淘宝抛弃淘宝客之后,个人站长集体陷入了恐慌之中。此时,什么值得买网的异军突起引起了广大个人站长的极大关注。做一个什么值得买一样的导购网站成了众多个人站长的一致心愿! TP-COUPON 导购系统 即是让个人站长实现此心愿的绝佳选择! 欢迎个人站长选用。V1.1版 更新记录:1.修正请求时查询淘宝店铺错误的bug2.删除一些无用的代码
立即学习“Python免费学习笔记(深入)”;
p = Person()print(getattr(p, 'name')) # 输出: Alice
print(getattr(p, 'age')) # 输出: 25
print(getattr(p, 'gender', '未知')) # 属性不存在,返回默认值“未知”
为什么使用 getattr()?
它特别适合在你不确定对象是否有某个属性时动态访问。比如处理配置对象、解析数据结构或编写通用函数时非常有用。
- 避免因属性缺失导致程序中断
- 实现更灵活的对象操作,如根据字符串动态读取属性
- 常用于反射(reflection)编程场景
基本上就这些。getattr() 看似简单,但在写通用代码时很实用。










