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

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

Алексей Гошко Профи (968), открыт 3 недели назад
Подскажите, постоянно такое происходит - много раз почему то вызывает 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

где я туплю?
3 ответа
все могло измениться, я прост не юзал Мудрец (15963) 3 недели назад
чекай свой init, также у тебя slots без отп, поэтому он не видит сеттер. ты ещё внутри сеттера widht несколько раз присваиваешь ему значение, что выводит бесконечный цикл
Алексей ГошкоПрофи (968) 3 недели назад
да не. уже нашел. спс
@widht.setter
def widht(self, value):
print('setter called')
self.widht = value


self.__ widht - надо было. не совсем разобрался с темой(
Sergio 2.1 Оракул (67655) 3 недели назад
 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
Алексей ГошкоПрофи (968) 3 недели назад
Прям заморочился. Спасибо)
Алекс Куха Высший разум (461801) 3 недели назад
Просто оставлю здесь
Алексей ГошкоПрофи (968) 3 недели назад
Ну практически слово в слово что сегодня проходил. Спасибо
Похожие вопросы