Скажем, у меня есть класс, который имеет подклассы числа.
Я могу создать экземпляр класса. Затем я могу установить его атрибут __class__
в один из подклассов. Я фактически изменил тип класса на тип своего подкласса на живом объекте. Я могу вызывать методы на нем, которые вызывают подклассовую версию этих методов.
Итак, насколько опасно это делать? Кажется странным, но неправильно ли это делать? Несмотря на способность изменять тип во время выполнения, является ли это особенностью языка, которого следует полностью избегать? Почему или почему нет?
(В зависимости от ответов я расскажу о более конкретном вопросе о том, что я хотел бы сделать, и если есть лучшие альтернативы).