Python作者确实花了很大的功夫,因为用起来实在是太方便了,几乎是你能想到的,Python几乎都有。
property 怎么概括呢?我也说不上来,实例解决吧。
property原型:
1 class property([fget[, fset[, fdel[, doc]]]])
参数说明:
- fget 获取属性值对应的方法
- fset 设置属性值对应的方法
- fdel 删除属性值队形的方法
- doc 属性描述信息
然而用法比较明显的是get & set
1 class C: 2 def __init__(self,size=10): 3 self.size = size 4 def getsize(self): 5 return self.size 6 def setsize(self,value): 7 self.size = value 8 def delsize(self): 9 del self.size 10 x = property(getsize,setsize,delsize) 11 12 c = C() 13 print('初始化的c.size',c.size) 14 c.x = 1 15 print('c.x =1后的c.size',c.size)
x = property(...)后,就可以直接操作x实现操作self.size啦
所以 :
c.x = 1 等价于 c.size = 1
c.x 等价于 c.size