網頁

2019年3月20日 星期三

python: @property

Python有一種修飾器(decorator)稱為屬性(property),它可以執行以下操作:

1. 將類方法(class method)轉換為只讀(read-only)屬性(attribute)。
2. 將setter和getter重新實現為屬性。

以下將會敘述幾種不同的方式使用builtin類屬性。


我們可以利用property將class的method轉換成read-only attributes,再利用dot就可以access這個attributes,讓這一行程式碼"print(person.full_name)"可以執行。


但read-only attributes不可以被修改,所以如果再最後一行加上一行程式碼"person.full_name = "Jackalope"“會導致AttributeError錯誤發生。



一般來說,想要查看或修改attribute的值,會間接用method去執行。


如果想要直接存取attribute,可以直接利用property()函式實現。


property()函式也可以使用修飾器語法,讓程式更為直覺。



因為沒有特別定義



所以不管怎麼改變c.add1,print(c.add1)永遠都是self._x+1 (3.31)。

沒有留言:

張貼留言