如何实现Python的Foo类,使其属性x返回赋值除以100后的余数
Foo类实现方案
最优实现方式是使用Python原生的property装饰器管控属性x的读写逻辑,不需要修改类的底层属性访问方法,逻辑清晰且不会影响类内其他属性的正常使用。
实现代码
class Foo: def __init__(self): # 私有属性存储x的原始赋值 self._x = 0 @property def x(self): # 访问x时返回原始值对100取余的结果 return self._x % 100 @x.setter def x(self, value): # 赋值时直接存储原始数值 self._x = value
运行效果验证
>>> p = Foo() >>> print(p.x) 0 >>> p.x = 125 >>> print(p.x) 25
如果需要兼容负数赋值场景,上述取余逻辑也能正常工作,比如给p.x赋值-125,访问时会返回75,符合Python取余运算的通用规则。
内容的提问来源于stack exchange,提问作者mostafa
相关产品推荐
相关产品推荐

