Python 内建函数列表 > Python 的内置函数 hasattr
Python 的内置函数 hasattr() 用于检查一个对象是否具有指定的属性或方法。该函数的语法为:
1hasattr(object, name) 2
参数说明:
object:要检查的对象,可以是任何 Python 对象name:要检查的属性或方法名称,以字符串形式传入
返回值:
- 如果对象具有该属性或方法,返回
True - 否则返回
False
功能特点:
- 该函数会在对象及其继承链中查找指定属性
- 对于动态创建的属性同样有效
- 可以检查方法是否存在,但不会验证方法是否可调用
典型应用场景:
- 动态属性检查:在不确定对象是否具有某个属性时使用
1class MyClass: 2 def __init__(self): 3 self.value = 42 4 5obj = MyClass() 6print(hasattr(obj, 'value')) # 输出: True 7print(hasattr(obj, 'non_existent')) # 输出: False 8
- 插件系统开发:检查插件是否实现了必需的方法
1class Plugin: 2 def execute(self): 3 pass 4 5plugin = Plugin() 6if hasattr(plugin, 'execute'): 7 plugin.execute() 8
- 接口兼容性检查:在调用方法前验证其是否存在
1def process(obj): 2 if hasattr(obj, 'save'): 3 obj.save() 4 else: 5 print("对象不支持保存操作") 6
注意事项:
- 与
getattr()配合使用可以更安全地访问属性 - 对于私有属性(以双下划线开头),需要使用真实的名称进行检查
- 该函数不会触发属性描述符的
__get__方法
对比其他相关函数:
性能考虑:
hasattr() 的调用开销相对较小,但在性能敏感的环境中频繁使用仍需谨慎。
《Python 的内置函数 hasattr》 是转载文章,点击查看原文。

