Как использовать метод __new__ для возврата объекта другого типа, отличного от его первого аргумента?

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

Почему разрешено такое, казалось бы, странное поведение? Каков вариант использования? Это явно намеренно.

9
задан max 18 April 2012 в 09:01
поделиться