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