gpt4 book ai didi

python 我什么时候不应该使用属性

转载 作者:行者123 更新时间:2023-12-05 03:02:16 25 4
gpt4 key购买 nike

我一直在学习替代 getter 和 setter 的 @property 装饰器。很多人似乎更喜欢使用 @property 而不是 getter 和 setter。

无论哪一种是可取的,大多数时候都需要它们吗?我觉得为所有内部变量使用@property 是不必要的或矫枉过正,尤其是当变量像下面这样简单时。简单的事情如果有效,难道不应该保持简单吗?

class Ex():
def __init__(self, value):
self.__x = value

@property
def x(self):
return self.__x
@x.setter
def x(self, value):
self.__x = value

我也不认为@property 提供额外的安全性(如果需要的话),因为有意图的人仍然可以访问该变量。 (._Ex__x)

为什么要使用@property(当不需要验证和 future 的更改时)以及什么时候不应该使用它们?

最佳答案

PEP 8 , Python 代码风格指南 说:

For simple public data attributes, it is best to expose just the attribute name, without complicated accessor/mutator methods.

如您所示,没有附加逻辑的属性与使用简单属性相比没有任何优势。

关于python 我什么时候不应该使用属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55082258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com