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對屬性訪問,修改,刪除等的設定. 

還有什麼其他好處呢?暫時沒想明白. 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章