Qual é a diferença entre type e type .__ new__ em python?
Eu estava escrevendo uma metaclasse e acidentalmente fiz assim:
class MetaCls(type):
def __new__(cls, name, bases, dict):
return type(name, bases, dict)
... em vez de assim:
class MetaCls(type):
def __new__(cls, name, bases, dict):
return type.__new__(cls, name, bases, dict)
Qual é exatamente a diferença entre essas duas metaclasses? E, mais especificamente, o que fez o primeiro não funcionar corretamente (algumas classes não foram chamadas pela metaclasse)?