Python045-魔法方法:属性访问
Posted frankruby
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python045-魔法方法:属性访问相关的知识,希望对你有一定的参考价值。
一、属性的几种访问方式
1、类.属性名
>>> class C: def __init__(self): self.x = ‘X-man‘ >>> c = C() >>> c.x ‘X-man‘
2、用内置函数getattr()访问属性
>>> getattr(c,‘x‘,‘莫有这个属性‘) ‘X-man‘ >>> getattr(c,‘y‘,‘莫有这个属性‘) ‘莫有这个属性‘ >>>
3、用property方法访问属性
class C: def __init__(self,size=10): self.size=size def getsize(self): return self.size def setsize(self,value): self.size = value def delsize(self): del self.size x=property(getsize,setsize,delsize) 执行结果: >>> c = C() >>> c.x 10 >>> c.x=1 >>> c <__main__.C object at 0x10c012f60> >>> c.x 1 >>> del c.x >>> c.x Traceback (most recent call last): File "<pyshell#19>", line 1, in <module> c.x File "/Users/wufq/Desktop/property.py", line 6, in getsize return self.size AttributeError: ‘C‘ object has no attribute ‘size‘
4、各类内置函数访问属性
* __getattr__(self,name)
定义当用户试图获取一个不存在的属性时的行为
* __getattribute__(self,name)
定义当该类的属性被访问时的行为
* __setattr__(self,name,value)
定义当一个属性被设置时的行为
* __delattr__(self,name)
定义当一个属性被删除时的行为
以上是关于Python045-魔法方法:属性访问的主要内容,如果未能解决你的问题,请参考以下文章
Python魔法方法之属性访问 ( __getattr__, __getattribute__, __setattr__, __delattr__ )