Давайте посмотрим на несколько примеров использования __getattr__ и __getattribute__. __getattr__ Магический метод "__getattr__" будет вызываться каждый раз, когда вы обратитесь к атрибуту, который еще не был определен. В следующем примере класс "Count" не реализует метод "__getattr__". Теперь, когда я пытаюсь получить доступ к атрибутам "mymin" и "mymax" все работает нормально. Но когда я пытаюсь получить доступ к атрибуту "mycurrent" - Python выдаст мне ошибку: "AttributeError: 'Count' object has no attribute 'mycurrent'" Код: Теперь у моего класса Count есть метод "__getattr__". Теперь, когда я пытаюсь получить доступ к "mycurrent" python возвращает мне все, что я реализовал в своем "__getattr__". В моем примере каждый раз, когда я пытаюсь вызвать атрибут, которого не существует, python создает этот атрибут и устанавливает ему целочисленное значение 0. __getattribute__ Теперь давайте посмотрим на метод "__getattribute__". Если в вашем классе есть метод "__getattribute__", python в
Различие магических методов __getattr__ и __getattribute__ в python.
26 июля 202226 июл 2022
108
1 мин