Рассмотрим на примерах, как взаимодействовать с атрибутами объектов с помощью встроенных функций hasattr(), getattr(), setattr(), delattr(). Для начала определим, что такое атрибут. Простыми словами, это что-то вроде переменной, которая связана с объектом и хранит в себе какие-то данные. Создадим экземпляр класса Cat и разберем работу с атрибутами при помощи встроенных функций. class Cat:
def __init__(self, name: str, age: int) -> None:
self.name = name
self.age = age
cat_bob = Cat(name="Bob", age=2) hasattr()...
Давайте посмотрим на несколько примеров использования __getattr__ и __getattribute__. __getattr__ Магический метод "__getattr__" будет вызываться каждый раз, когда вы обратитесь к атрибуту, который еще не был определен. В следующем примере класс "Count" не реализует метод "__getattr__". Теперь, когда я пытаюсь получить доступ к атрибутам "mymin" и "mymax" все работает нормально. Но когда я пытаюсь получить доступ к атрибуту "mycurrent" - Python выдаст мне ошибку: "AttributeError: 'Count' object has no attribute 'mycurrent'" Код: Теперь у моего класса Count есть метод "__getattr__"...