【发布时间】:2019-04-22 22:41:20
【问题描述】:
我通过在 python 中设置属性并获得最大递归深度错误阅读了这个answer。
在设置属性时,我应该如何以及在哪里检查和测试一个值?我知道我可以在setter 中查看它,但是在一个班级的__init__() 中查看它是否很好?如果我在__init__() 中检查它,那么我的setter 和__init__ 有重复代码。
我的代码示例:
class RealNumber:
def __init__(self, real):
self._real = real # NEED TO TEST IT BEFORE ASSIGNMENT
# TEST IS SAME AS IN SETTER
@property
def real(self):
return self._real
@real.setter
def real(self, value):
if isinstance(value, int):
self._real = value
else:
raise ValueError('Can not set real part with value {}'.format(value))
【问题讨论】:
标签: python class properties setter