Я прочитал ответ с установкой атрибута в python и получением ошибка максимальной глубины рекурсии .
Как и где я должен проверять и проверять значение при настройкеатрибут?Я знаю, что могу проверить это в 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))