我偶然发现了下面在另一个问题中使用 getter 和 setter 的示例 Preferred way of defining properties in Python: property decorator or lambda?
由于Python有隐式的getter和setter,我想知道为什么要显式定义它们,如下所示。这些示例是否有任何优点,或者只有当 getter/setter 涉及比下面的简化示例更复杂的内容时才有意义?
class Bla(object):
def sneaky():
def fget(self):
return self._sneaky
def fset(self, value):
self._sneaky = value
return locals()
sneaky = property(**sneaky())
Python 的最新版本增强了装饰器方法:
class Bla(object):
@property
def elegant(self):
return self._elegant
@elegant.setter
def elegant(self, value):
self._elegant = value
最佳答案
通常您应该只使用属性访问。如果 getter 和 setter 只是增加开销,那么它们就毫无意义
Python 将 getter 和 setter 与属性联系起来的好处是,您可以轻松地将属性更改为属性,而无需重构所有使用该类的代码。
关于python - 为什么在 python 中使用 getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21471359/