Sobes.tech
Junior — Middle
88

Wat gebeurt er bij het uitvoeren van de opdracht print(some.attr), als some een instantie van een klasse is?

Antwoord van AI

sobes.tech AI

При выполнении команды print(some.attr), где some — экземпляр класса, Python пытается получить атрибут attr у этого объекта. Происходит следующий процесс:

  1. Сначала ищется атрибут attr в самом экземпляре some (в его словаре __dict__).
  2. Если атрибут не найден, поиск продолжается в классе, к которому принадлежит some, и далее по цепочке наследования.
  3. Если атрибут найден и это, например, метод, он будет вызван или возвращен как объект.
  4. Если атрибут отсутствует, будет вызвано исключение AttributeError.

Пример:

class MyClass:
    def __init__(self):
        self.attr = 'Значение атрибута'

some = MyClass()
print(some.attr)  # Выведет: Значение атрибута

Если attr не определён, например print(some.nonexistent), будет ошибка:

AttributeError: 'MyClass' object has no attribute 'nonexistent'