一、属性的几种访问方式
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)
定义当一个属性被删除时的行为
原文地址:https://www.cnblogs.com/frankruby/p/9912268.html
时间: 2024-11-06 15:09:29