探秘Python中__getattr__和__getattribute__的区别与联系

418 篇文章 ¥99.90 ¥299.90
本文详细探讨了Python中__getattr__和__getattribute__的差异和联系。__getattr__在尝试访问不存在的属性时触发,而__getattribute__在访问任何属性时都会调用,包括存在的属性。两者在调用时机、作用范围和潜在风险上存在区别,开发者应根据需求谨慎选择使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

探秘Python中__getattr__和__getattribute__的区别与联系

在Python中,getattr__和__getattribute 是两个非常重要的魔法方法,它们可以实现对属性或方法访问的自定义处理。虽然它们都能够在对象访问时起到作用,但是它们的实现机制以及使用方式都有很大的不同。本文将会对这两个方法进行深入的剖析,并且通过相关源码来解释它们的区别和联系。

  1. getattr

getattr 方法在访问一个不存在的属性时会被调用,也就是说它可以在运行时动态地获取属性。我们先来看下面这个例子:

class Student:
    def __init__(self, name):
        self
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_welike

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值