Понимание разницы между __getattr__ и __getattribute __

Я пытаюсь понять разницу между __ getattr __ и __ getattribute __ , однако у меня это не получается.

ответ на вопрос о переполнении стека Разница между __ getattr __ и __ getattribute __ говорит:

__ getattribute __ вызывается перед просмотром фактические атрибуты на объекте, поэтому может быть сложно правильно реализовать. Вы можете очень легко получить бесконечные рекурсии.

Я совершенно не понимаю, что это значит.

Далее говорится:

Вы почти наверняка хотите __ getattr __ .

Почему?

Я читал, что если __ getattribute __ не удается, вызывается __ getattr __ . Так почему два разных метода делают одно и то же? Если мой код реализует новые классы стилей, что мне следует использовать?

Я ищу несколько примеров кода, чтобы прояснить этот вопрос. Я использовал Google в меру своих возможностей, но ответы, которые я нашел, не обсуждают проблему полностью.

Если есть документация, я готов ее прочитать.

192
задан drhagen 20 June 2018 в 00:12
поделиться