何时使用属性与何时在python中使用属性?

Mic*_*ael 7 python

只是一个简单的问题,我在理解使用属性的位置与使用普通旧属性的位置时遇到一些困难.我的区别有点模糊.关于这个问题的任何资源都将是一流的,谢谢!

Sve*_*ach 15

属性比属性更灵活,因为您可以定义描述在设置,获取或删除它们时应该发生什么的函数.如果您不需要这种额外的灵活性,请使用属性 - 它们更容易声明且更快.

在像Java这样的语言中,通常建议总是编写getter和setter,以便将来可以选择用更复杂的版本替换这些函数.这在Python中不是必需的,因为访问属性和属性的客户端代码语法是相同的,因此您可以随后选择使用属性,而不会破坏向后兼容性.


Dan*_*man 13

关键是语法是可以互换的.始终从属性开始.如果在访问属性时发现需要其他计算,请将其替换为属性.

  • 这是重要的一点!在其他语言中(*cough*Java*cough*),一旦你定义了某个属性,如果你想要更多控制,就不能再回去改变它.因此,您必须编写所有这些不必要的getter和setter,以便您可以选择稍后更改它们.在Python中,您只需编写普通属性,然后在内部用属性替换它们,而无需更改外部API! (4认同)