Back to questions
Junior — Middle
67
Что произойдет при выполнении команды print(some.attr), если some является экземпляром класса?
Answer from 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'