История изменений
Исправление MyTrooName, (текущая версия) :
http://stackoverflow.com/questions/8106900/new-and-init-in-python
__new__ is for object creation
вызывается для создания объекта.
super
это как base, родительский класс. синтаксисов вызова super дофейхуа, но в данном случае тупо вызывается родительский __new__ с теми же аргументами
если libastral не врет, что у тебя там еще if есть и return, то смысл такой:
если в пространстве имен cls (аргумент __new__ - класс создаваемого объекта) нет поля _instance, то создаем новый объект, как завещали предки (object) и возвращаем его как результат вызова __new__ (попутно сохраняя в _instance). иначе просто возвращаем то, что там было.
иначе говоря, базовый синглтон, от которого можно наследовать сколько угодно разных синглтонов :)
Исходная версия MyTrooName, :
http://stackoverflow.com/questions/8106900/new-and-init-in-python
__new__ is for object creation
вызывается для создания объекта.
super
это как base, родительский класс. синтаксисов вызова super дофейхуа, но в данном случае тупо вызывается родительский __new__ с теми же аргументами
если libastral не врет, что у тебя там еще if есть и return, то смысл такой:
если в пространстве имен cls (аргумент __new__ - класс создаваемого объекта) нет поля _instance, то создаем новый объект, как завещали предки (object) и возвращаем его как результат вызова __new__. иначе просто возвращаем то, что там было.
иначе говоря, базовый синглтон, от которого можно наследовать сколько угодно разных синглтонов :)