国际访客建议访问 Primers 编程伙伴 国际版站点 > Python 教程 > hasattr 以获得更好的体验。

# Python 的内置函数 hasattr

请查看 Python 内建函数列表 了解更多相关 API。

说明:判断属性是否存在。

# 函数说明

def hasattr(obj, name:str):
    '''
    判断对象的属性是否存在

    :param obj: 一个对象
    :param name: 属性的名字
    :return: 属性存在则返回 True,否则返回 False
    '''

!subtitle:说明

判断对象的属性是否存在。

  1. 首先调用 __getattribute__ 方法,尝试获取对象的 __dict__ 属性字典

  2. 未找到该属性时,如果对象实现了 __getattr__ 方法,则会调用该方法

__getattribute__object 中定义的方法,默认读取 __dict__ 属性字典。 如果 __dict__ 属性字典中没有指定的属性,则尝试调用 __getattr__ 方法。

  • 重载 __getattr__ 方法可以自定义 __dict__ 属性字典中没有的属性的查找方式。

  • 重载 __getattribute__ 方法可以自定义所有属性的查找方式。

请参考 delattrgetattrsetattr 等相关函数。

!subtitle:参数

  • obj - 要判断的对象

  • name - 要判断的属性名

!subtitle:返回值

  • 如果属性存在,则返回 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'))

# 推荐阅读

本文 更新于: 2025-11-27 09:37:59 创建于: 2025-11-27 09:37:59