我有一个像这样的 python 属性:
class Foo:
@property
def maxInputs(self):
return self._persistentMaxInputs.value
@maxInputs.setter
def maxInputs(self, value):
self._persistentMaxInputs.value = value
目前,价值maxInputs
每个人都可以获取和设置。
但是,我想让每个人都能感受到它的价值maxInputs
,但它只能设置在Foo
class.
那么有没有办法用私有 setter 和公共 getter 来声明属性呢?
Python 有无隐私模型。使用下划线只是一种约定,没有访问控制。
如果您不希望“公共”API 包含 sett,那么只需从类中删除 setter 并分配给self._persistentMaxInputs.value
直接在你的类代码中。如果您想限制需要记住这一点的位置数量,您可以将其设为一个函数:
def _setMaxInputs(self, value):
self._persistentMaxInputs.value = value
You can当然,让它成为一个单独的property
对象,但是你必须放弃装饰器语法:
def _maxInputs(self, value):
self._persistentMaxInputs.value = value
_maxInputs = property(None, _maxInputs)
但现在至少你可以使用self._maxInputs = value
在你的类代码中。然而,这并没有真正提供那么多的语法改进。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)