为了账号安全,请及时绑定邮箱和手机立即绑定

使用@Property与getter和setter

使用@Property与getter和setter

叮当猫咪 2019-06-14 16:05:52
使用@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程序,你会使用哪种方法,为什么?
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

偏好属性..这就是他们在那里的目的。

原因是所有属性在Python中都是公共的。以下划线或下划线开头的名称只是一个警告,即给定的属性是一个实现细节,在代码的未来版本中可能不会保持不变。它并不妨碍您实际获得或设置该属性。因此,标准属性访问是一种正常的、毕达克式的访问属性的方式。

属性的优点是它们在语法上与属性访问相同,因此您可以在不更改客户端代码的情况下从一个更改到另一个。您甚至可以有一个使用属性的类的版本(例如,用于按合同编写代码或调试)和一个不用于生产的类,而不需要更改使用它的代码。同时,您不必为所有内容编写getter和setter,以防以后需要更好地控制访问。


查看完整回答
反对 回复 2019-06-14
?
湖上湖

TA贡献2003条经验 获得超2个赞

在Python中,您不会仅仅为了好玩而使用getter或setter或属性。首先只使用属性,然后只在需要的情况下,最终迁移到属性,而不必使用类更改代码。

实际上,有许多扩展名为.py的代码使用getter和setter以及继承和无意义的类,例如一个简单的元组就可以做到这一点,但是它是使用Python用C+或Java编写的代码。

那不是Python代码。


查看完整回答
反对 回复 2019-06-14
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

使用属性可以让您从正常的属性访问开始,然后在必要时使用getter和setter支持它们。.


查看完整回答
反对 回复 2019-06-14
  • 3 回答
  • 0 关注
  • 744 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信