Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python. Слишком много раз вызывается setter

Алекс Г Мастер (1069), закрыт 5 дней назад
Подскажите, постоянно такое происходит - много раз почему то вызывает setter
class Rectangle:
__slots__ = '__widht', 'height'

def __init__(self, a, b):
self.widht = a
self.height = b

@property
def widht(self):
return self.__widht

@widht.setter
def widht(self, value):
print('setter called')
self.widht = value

где я туплю?
Лучший ответ
Алекс Куха Высший разум (466889) 1 месяц назад
Просто оставлю здесь
Алекс ГМастер (1069) 1 месяц назад
Ну практически слово в слово что сегодня проходил. Спасибо
Остальные ответы
okkutsuu Просветленный (22254) 1 месяц назад
чекай свой init, также у тебя slots без отп, поэтому он не видит сеттер. ты ещё внутри сеттера widht несколько раз присваиваешь ему значение, что выводит бесконечный цикл
Алекс ГМастер (1069) 1 месяц назад
да не. уже нашел. спс
@widht.setter
def widht(self, value):
print('setter called')
self.widht = value


self.__ widht - надо было. не совсем разобрался с темой(
S.H.I. Оракул (68718) 1 месяц назад
 class Rectangle:  
__slots__ = '__width', '__height'

def __init__(self, a, b):
self.width = a
self.height = b

@property
def width(self):
return self.__width

@width.setter
def width(self, value):
if value <= 0:
raise ValueError("Width must be positive")
print('setter called')
self.__width = value

@property
def height(self):
return self.__height

@height.setter
def height(self, value):
if value <= 0:
raise ValueError("Height must be positive")
self.__height = value
Алекс ГМастер (1069) 1 месяц назад
Прям заморочился. Спасибо)
Похожие вопросы