第九章:魔法方法 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对属性访问,修改,删除等的设定.
还有什么其他好处呢?暂时没想明白.