python - 在python中的私有变量上使用属性设置器可以吗?
问题描述
在下面的代码片段中,我在 x 属性上使用了一个 setter(我想保持私有)
class test:
def __init__(self, pos, x):
self._pos = pos
self.x = x # Want to be a private variable, eg. self._x
@property
def x(self):
return self._x
@x.setter
def x(self, x):
# Logic for setting x
if self._pos == 'long':
self._x = -1 * abs(x)
elif self._pos == 'short':
self._x = abs(x)
else:
raise ValueError('$$ pos must be long or short')
问题是我最终得到了两个属性 self.x 和 self._x 。因为我希望 x 是私有的 - 我只想拥有 self._x (and discard self.x) 。代码中缺少什么?
解决方案
推荐阅读
- android - webrtc android 视频通话声音有刺耳的声音和回声
- regex - 正则表达式:匹配单词但后面没有“字母”,除了“s”
- azure - 为什么我会在两种不同的情况下获得两种不同的不记名令牌?Azure Active Directory(也是微软区块链工作台)
- vba - Word中的VBA:如何计算剪贴板内容中的段落数
- javascript - JavaScript For-Loop 问题:为什么会出现语法错误?
- apache-spark - Spark SQL - 数据比较
- mysql - Mysql:选择过去 30 天内具有起始日期值的所有行
- python - 将 3 个功能组合到一个程序中
- java - Selenium WebDriver 中 org.openqa.selenium.remote.session.StripAnyPlatform 类的目的是什么?
- matlab - 使用特定文件名 matlab 保存矩阵