Документация подразумевает, что нормальнодля __new__(cls, ...)
возвращать объект типа, отличного от клс
. В этом случае говорится, что __init__()
не будет вызываться. Это не указано явно, но здравый смысл или простой тест подтверждают, что результирующий объект не будет иметь тип cls
.
Почему разрешено такое, казалось бы, странное поведение? Каков вариант использования? Это явно намеренно.