python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python getattr和hasattr用法

Python学习笔记之getattr和hasattr用法示例详解

作者:一只野生的善逸

在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章主要介绍了Python学习笔记之getattr和hasattr用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

1.getattr用法详解

1.1 基本作用

getattr(object, name[, default])
用于动态获取对象的属性值。

1.2 示例

class Person:
    name = "Alice"
    age = 20

person = Person()

print(getattr(person, "name"))         # 输出: Alice
print(getattr(person, "age"))          # 输出: 20
print(getattr(person, "gender", "女")) # 属性不存在,输出: 女

1.3 原理

2.hasattr用法详解

2.1 基本作用

hasattr(object, name)
用于判断对象是否有某个属性。

返回值:

2.2 示例

class Person:
    name = "Alice"

person = Person()

print(hasattr(person, "name"))      # 输出: True
print(hasattr(person, "age"))       # 输出: False

2.3 原理

3. 二者区别与联系

3.1 联系

3.2 区别

3.3 注意

⚠️ 注意:hasattr 内部实际上是 try-except 机制,属性访问可能触发属性的 getter 或 property 代码块!

4. 实用技巧与注意事项

4.1 实用技巧

4.2 注意事项

5. 综合示例

5.1 示例代码

class Demo:
    def __init__(self):
        self.x = 10
    @property
    def y(self):
        print("访问了 y")
        return 20

d = Demo()
print(hasattr(d, 'x'))  # True
print(hasattr(d, 'y'))  # True,同时会打印: 访问了 y
print(getattr(d, 'y'))  # 访问了 y,输出: 20
print(getattr(d, 'z', '不存在'))  # 输出: 不存在

6. 总结表

方法作用返回值不存在时行为
getattr获取属性值属性值/默认值抛 AttributeError/返回默认
hasattr判断属性是否存在True/False返回 False

到此这篇关于Python学习笔记之getattr和hasattr用法的文章就介绍到这了,更多相关Python getattr和hasattr用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文