#Python 的内置函数 hasattr
说明:判断属性是否存在。
#函数说明
def hasattr(obj, name:str):
'''
判断对象的属性是否存在
:param obj: 一个对象
:param name: 属性的名字
:return: 属性存在则返回 True,否则返回 False
'''
说明
判断对象的属性是否存在。
- 首先调用
__getattribute__
方法,尝试获取对象的__dict__
属性字典 - 未找到该属性时,如果对象实现了
__getattr__
方法,则会调用该方法
__getattribute__
是object
中定义的方法,默认读取__dict__
属性字典。 如果__dict__
属性字典中没有指定的属性,则尝试调用__getattr__
方法。
- 重载
__getattr__
方法可以自定义__dict__
属性字典中没有的属性的查找方式。- 重载
__getattribute__
方法可以自定义所有属性的查找方式。
参数
obj
- 要判断的对象name
- 要判断的属性名
返回值
- 如果属性存在,则返回
True
- 如果属性不存在,则返回
False
#示例
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 30)
print(hasattr(p, 'name'))
print(hasattr(p, 'age'))
print(hasattr(p, 'sex'))