¿Por qué __new__ en las clases de estilo nuevo de Python no es un método de clase?
The Changelog for Python 2.2 (donde se introdujeron nuevas clases de estilo) dice lo siguiente acerca de__new__
función:
__new__
es un método estático, no un método de clase. Inicialmente pensé que tendría que ser un método de clase, y por eso agregué elclassmethod
primitivo. Desafortunadamente, con los métodos de clase, las llamadas ascendentes no funcionan bien en este caso, así que tuve que convertirlo en un método estático con una clase explícita como primer argumento.
Sin embargo, no puedo pensar por qué los métodos de clase no funcionarían para este propósito, y ciertamente se vería mejor. ¿Por qué no__new__
terminar como un método de clase al final? ¿A qué se refiere Guido cuando dice que "las llamadas ascendentes no funcionan bien en este caso"?