Por que __new__ nas classes de estilo novo do Python é um método de classe?
Changelog para Python 2.2 (onde novas classes de estilo foram introduzidas) diz o seguinte sobre o__new__
função:
__new__
é um método estático, não um método de classe. Inicialmente, pensei que teria que ser um método de classe e foi por isso que adicionei oclassmethod
primitivo. Infelizmente, com os métodos de classe, os upcalls não funcionam corretamente neste caso, então tive que torná-lo um método estático com uma classe explícita como seu primeiro argument
No entanto, não consigo pensar por que os métodos de classe não funcionariam para esse fim, e certamente pareceria melhor. Por que não__new__
acabar como um método de classe no final? A que Guido se refere quando diz que "as chamadas não funcionam corretamente neste caso"?