Python中的property

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

 

posted @ 2018-04-16 11:08  BiaoGe  阅读(161)  评论(0编辑  收藏  举报