各位好
最近兩個月開始學python, 有些問題實在是搞不懂, 其中一個是 @property
我看很多教學都說是保護變數,
例如
@property
def name(self):
return self._name
@name.setter
def name(self, new_name):
self._name = new_name
然後可以使用 instance p,
p.name 取值, p.name = 1 設值
我的疑問是,
1. 這根本無法保護變數,為什麼教程還要說這種寫法保護變數
2. 加那個@property @name.setter, 到底有什麼好處?
我如果不使用@property, 而是把方法名稱改成 get_name, 跟 set_name 程式碼讀起來,不是更清楚明白嗎?
有沒有很有經驗的大大,能幫我解惑一下
感恩