Я пытаюсь понять разницу между __ getattr __
и __ getattribute __
, однако у меня это не получается.
ответ на вопрос о переполнении стека Разница между __ getattr __
и __ getattribute __
говорит:
__ getattribute __
вызывается перед просмотром фактические атрибуты на объекте, поэтому может быть сложно правильно реализовать. Вы можете очень легко получить бесконечные рекурсии.
Я совершенно не понимаю, что это значит.
Далее говорится:
Вы почти наверняка хотите
__ getattr __
.
Почему?
Я читал, что если __ getattribute __
не удается, вызывается __ getattr __
. Так почему два разных метода делают одно и то же? Если мой код реализует новые классы стилей, что мне следует использовать?
Я ищу несколько примеров кода, чтобы прояснить этот вопрос. Я использовал Google в меру своих возможностей, но ответы, которые я нашел, не обсуждают проблему полностью.
Если есть документация, я готов ее прочитать.