python – 使用@property与getter和setter
作者:互联网
这是一个纯Python特定的设计问题:
class MyClass(object):
...
def get_my_attr(self):
...
def set_my_attr(self, value):
...
和
class MyClass(object):
...
@property
def my_attr(self):
...
@my_attr.setter
def my_attr(self, value):
...
Python让我们可以这样做.如果你要设计一个Python程序,你会使用哪种方法?为什么?
解决方法:
喜欢属性.这就是他们的目的.
原因是Python中的所有属性都是公共的.带有下划线或下划线的起始名称只是警告,给定属性是一个实现细节,在将来的代码版本中可能不会保持不变.它不会阻止您实际获取或设置该属性.因此,标准属性访问是访问属性的正常,Pythonic方式.
属性的优点是它们在语法上与属性访问相同,因此您可以在不更改客户端代码的情况下从一个更改为另一个.您甚至可以使用一个版本的类使用属性(例如,用于逐个合同或调试)和一个不用于生产的类,而不更改使用它的代码.同时,您不必为所有内容编写getter和setter,以防您以后需要更好地控制访问.
标签:python,properties,getter-setter 来源: https://codeday.me/bug/20190911/1803124.html