В чем разница между типом и типом .__ new__ в python?

Я писал метакласс и случайно сделал это так:

class MetaCls(type):
    def __new__(cls, name, bases, dict):
        return type(name, bases, dict)

... вместо этого:

class MetaCls(type):
    def __new__(cls, name, bases, dict):
        return type.__new__(cls, name, bases, dict)

В чем именно разница между этими двумя метаклассами? А более конкретно, что заставило первый работать некорректно (некоторые классы не были вызваны метаклассом)?

Ответы на вопрос(6)

Ваш ответ на вопрос