getattr() 获取对象属性
最后更新:2026-09-22
getattr() 获取对象属性
getattr(obj, name[, default]) 返回 obj 的属性 name;不存在时返回 default(否则抛 AttributeError)。
| 分类 | 内置函数 |
|---|---|
| 类型 | 内置函数 |
| Python 版本 | all |
📝 语法
getattr(object, name[, default])
⚙️ 参数
| object 必选 | 要读取属性的对象。 |
|---|---|
| name 必选 | 属性名(字符串)。 |
| default 可选 | 属性不存在时返回的默认值。(默认值:None) |
返回值:对象的属性值;属性缺失时返回 default。
💥 异常
AttributeError— 当属性不存在且未提供 default 时抛出。TypeError— 当 name 不是字符串时抛出。
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
10
default
🏷️ 相关内置函数
💡 相关案例
更多实战案例即将上线,敬请期待。
❓ 常见问题
Qgetattr(obj, 'x', 'default') 和 obj.x 有什么区别?
A属性存在时结果相同;属性不存在时 getattr 返回 'default',而 obj.x 直接抛 AttributeError。
Q什么场景必须用 getattr?
A属性名是动态计算出来的(来自变量、配置、字符串拼接)时,getattr(obj, attr_name) 是点语法无法替代的。
Qgetattr 和 hasattr 怎么配合?
A可以先 hasattr(obj, 'x') 判断再用 getattr(obj, 'x');更简洁的是 getattr(obj, 'x', None) 一步到位。
Q不传 default 且属性不存在会怎样?
A抛 AttributeError;name 不是字符串时抛 TypeError。