Вопросы с собеседований по Python
@workakkk - админ
@machinelearning_interview - вопросы с собесдований по Ml
@pro_python_code - Python
@data_analysis_ml - анализ данных на Python
@itchannels_telegram - 🔥 главное в ит
РКН: clck.ru/3FmrFd
Post #803
24.9K
💩 Какова разница между методами __getattr__ и __getattribute__?
Оба этих метода являются магическими.
🔘
Пример кода выше показывает, как метод используется для обработки запроса несуществующего атрибута xyz.
🔘
Здесь же можно увидеть, что метод используется для обработки запросов всех атрибутов, как существующих (attr), так и несуществующих (xyz).
✅ Таким образом,
#вопросы_с_собеседований
@python_job_interview
Оба этих метода являются магическими.
🔘
__getattr__
class Missing:
attr = 42
def __getattr__(self, name):
print(f"In __getattr__, asked for {name}")
return 73
m = Missing()
print(m.attr) # 42
print(m.xyz) # In __getattr__, asked for xyz; 73
Пример кода выше показывает, как метод используется для обработки запроса несуществующего атрибута xyz.
🔘
__getattribute__
class Always:
attr = 42
def __getattribute__(self, name):
print(f"In __getattribute__, asked for {name}")
return 73
a = Always()
print(a.attr) # In __getattribute__, asked for attr; 73
print(a.xyz) # In __getattribute__, asked for xyz; 73
Здесь же можно увидеть, что метод используется для обработки запросов всех атрибутов, как существующих (attr), так и несуществующих (xyz).
✅ Таким образом,
__getattribute__ — это метод, который управляет всеми запросами атрибутов, тогда как __getattr__ вызывается, когда __getattribute__ не находит атрибут. #вопросы_с_собеседований
@python_job_interview
- 👍 20
- ❤ 7
- 🔥 7








