编程语言
首页 > 编程语言> > python – 使用@property与getter和setter

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