Я только начал изучать Python несколько месяцев назад, и я пытаюсь понять различия между различными методами __get*__:
__get__
__getattr__
__getattribute__
__getitem___
И их эквиваленты __del*__:
__del__
__delattr__
__delete__
__delitem__
В чем разница между ними? Когда я должен использовать один над другим? Существует ли конкретная причина, по которой большинство методов __get*__ имеют эквиваленты __set*__, но нет __setattribute__?