В чем разница между методами Python «__get * __» и «_del * __»?

Я только начал изучать Python несколько месяцев назад и пытаюсь понять разницу между различными методами __ get * __ :

__get__
__getattr__
__getattribute__
__getitem___

И их __del * __ эквиваленты:

__del__
__delattr__
__delete__
__delitem__

В чем разница между ними? Когда я должен использовать одно вместо другого? Есть ли конкретная причина, по которой большинство методов __ get * __ имеют эквиваленты __ set * __ , но отсутствуют __ setattribute __ ?

25
задан Zearin 29 January 2012 в 01:22
поделиться