Как заменить объект python на другой объект?Заменить один объект python другим во всем мире
У меня есть два класса, SimpleObject
и FancyObject
. Я создал SimpleObject
и имею несколько ссылок на него. Теперь я хотел бы создать FancyObject
и сделать все эти ссылки на новый объект.
a = SimpleObject()
some_list.append(a)
b = FancyObject()
a = b
не то, что я хочу, это просто меняет то, что а указывает. Я читал, что следующее будет работать, но нет. Я получаю сообщение об ошибке «Атрибут __dict__ не доступен для записи»:
a.__dict__ = b.__dict__
То, что я хочу, это эквивалент (псевдо-C):
*a = *b
Я знаю, что это Hacky, но есть ли способ для этого?
Итак, вы хотите, чтобы изменить то, что данные хранятся в том месте, где 'a' хранится? Я отправлю ответ после обеда .. – pradyunsg
@Schoolboy Да. В принципе, я поставил простой объект в a и хотел (лениво) продвинуть его к более сложному объекту b, когда возникнет такая необходимость. a и b имеют один и тот же интерфейс, поэтому код, использующий их, должен иметь возможность справиться с этим. – jdm