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 у этого объекта. Происходит следующий процесс:
- Сначала ищется атрибут
attrв самом экземпляреsome(в его словаре__dict__). - Если атрибут не найден, поиск продолжается в классе, к которому принадлежит
some, и далее по цепочке наследования. - Если атрибут найден и это, например, метод, он будет вызван или возвращен как объект.
- Если атрибут отсутствует, будет вызвано исключение
AttributeError.
Пример:
class MyClass:
def __init__(self):
self.attr = 'Значение атрибута'
some = MyClass()
print(some.attr) # Выведет: Значение атрибута
Если attr не определён, например print(some.nonexistent), будет ошибка:
AttributeError: 'MyClass' object has no attribute 'nonexistent'