鱼c笔记——Python魔法方法三:属性访问

__getattr__(self, name)  定义当用户试图获取一个不存在的属性时的行为 : 当访问对象的时name属性时,若name属性不存在,会自动调用__getattr__。如果存在,则不会调用__getattr__方法,而是直接返回name属性

__getatribute__(self, name) 定义当该类的属性被访问时的行为    当访问对象的name属性时,无论name存不存在都会调用该方法

__setattr__(self, name, value) 定义当一个属性被设置时的行为    当试图给对象的name属性进行赋值的时候调用

__delattr__(self, name) 定义当一个对象被删除时的行为


上述四个方法中除了__getattr__以外,均可用help(object. )的方式查询帮助,但是__getattr__怎样查询还不太知道

只要重写这四个魔法方法我们就可以控制对对象的属性访问了


这其中的三个方法和前面的getattr, setattr, delattr 是有区别的,一个由双下划,一个没(愣了几分钟才反应过来,囧)

前面的参见:http://blog.csdn.net/sinat_41104353/article/details/79250415

>>> class C:
	def __getattribute__(self, name):
		print("getattribute")
		return super().__getattrbute__(name)        #为了不影响原来__getattribute__功能的使用,故调用基类的__getattribute__
	def __getattr__(sel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值