Безопасно ли менять базовый класс в Python?

Подобные вопросы существуют, но точно таких нет, и я не нашел полностью удовлетворительных ответов.

Я делаю биологическую модель на основе агента -. Предположим, у меня есть класс клеток типа А и один типа клеток В. Они стареют по часам. Предположим, что когда клетка типа А достигает определенного возраста, она превращается в клетку типа В.

У меня есть инвентарь ячеек. Я не хочу просто создавать новые ячейки B и добавлять их в инвентарь, оставляя ячейки A в инвентаре.

Кажется, это работает, но безопасно ли это?

class B(object):
    pass

class A(object):
    def changeToB(self):
        self.__class__ = B

Или есть лучший подход?

13
задан abalter 11 July 2012 в 21:55
поделиться