Learning Python : 2 . property函数

第九章:魔法方法   9.5 属性 

python里面没有私有变量的设定, 尽管可以在变量名前面加上 _ 来提醒,警告不要修改变量, 但其实还是可以强行修改.

类似其他语言,你可以定义一些 getX , setX 之类的函数来访问,修改变量.

但python里面提供了一个叫 "property函数" 的东西,这玩意儿可以让  直接访问,修改变量 与你自己定制的 get,set函数 映射起来.

具体的例子如下. 

假设有这么段代码(请自行忽略其中的内容,仅注意语法):


__metaclass__ = type
class Man :
    def __init__ ( self , size=15 ) :
          self.size = size
    def getSize ( self ) :
          print 'Get Size!'
          return self.size
    def setSize ( self , size ) :
          print 'Set Size!'
          self.size = size
# property函数的使用. (实际上它的实现不是函数,而是一个拥有很多方法的类 )
    size = property ( getSize , setSize )


然后你可以试着访问,修改变量.

>> diaosi = Man()
>> diaosi.size
Get Size!
>> print diaosi.size
Get Size!
15
>> diaosi.size = 14
Set Size!
>> print diaosi.size
Get Size!
14
>> .......


简化了客户代码. 且可以支持coder对属性访问,修改,删除等的设定. 

还有什么其他好处呢?暂时没想明白. 

你可能感兴趣的:(python,语言)