Ответ 1
Вы можете назначить только атрибуту __class__
экземпляра определяемого пользователем класса (т.е. с использованием ключевого слова class
), а новое значение также должно быть определяемым пользователем классом. Являются ли классы новыми или старыми, не имеет значения. (Вы не можете их смешивать. Вы не можете превратить экземпляр класса старого стиля в экземпляр класса нового стиля.) См. Также this issue в отладчике ошибок Python, который также жалуется, что сообщение об ошибке несколько сложно понять.
Просто добавьте то, что сказал Рейф в приведенном выше комментарии: Никогда не делайте этого в производстве.