@Daaeev

Как избавиться от рекурсии в методе __settatr__?

Как правильно присваивать атрибут объекту в методе __setattr__(вместо print('ГОТОВО')) производного класса, чтобы не возникло рекурсии?

class Calendar:
    __slots__ = ('D', 'M', 'Y')

    def __init__(self, d = 0, m = 0, y = 0):
        self.D = d
        self.M = m
        self.Y = y
        print(self)

    def __setattr__(self, key, value):
        if isinstance(value, int):
            print('ГОТОВО')
        else:
            raise AttributeError

    def __getattr__(self, item):
        print('ГОТОВО2')


c = Calendar(1, 12, 2004)

P.S. я новичок, если что-то не так назвал - простите)
  • Вопрос задан
  • 66 просмотров
Решения вопроса 2
@bacon
окей гугл, "__setattr__ recursive"
PS непонятно зачем новичку использовать __slots__
Ответ написан
@qid00000000
Мало что знаю, но информацию найду в гугле
Через __dict__ не пробовали?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы