各位好
最近两个月开始学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 程式码读起来,不是更清楚明白吗?
有没有很有经验的大大,能帮我解惑一下
感恩
用obj.get_name , obj.set_name 的方式,当然也可以,这就是 pure C的作法.python的@property是一种语法糖,你可以google 语法糖是什么,作用,优缺点等等