Я столкнулся с проблемой, если у меня есть объект A
, и внутри этого объекта мне нужно сохранить копию самого A
, которую я могу изменить, не затрагивая исходный объект. Например, что-то вроде этого:
class MyClass():
def __init__(self, value, copy=False, **kwargs):
self.value = value
if not copy:
self.A_copy = MyClass(copy=True)
# Do something with the other arguments
def expensive_operation(self, *args, **kwargs):
# Do expensive operation that changes properties of the instance
pass
Однако я продолжаю получать ошибку ядра, которая, вероятно, связана с этим кодом. Причина, по которой мне нужно это сделать, заключается в том, что мне нужно сохранить экземпляр MyClass
для конечного пользователя, в то время как в фоновом режиме мне нужно выполнить дорогостоящую операцию, которая изменяет свойства экземпляра. Предположим, что вы не можете переместить дорогостоящую операцию за пределы класса, каким образом я могу сохранить копию экземпляра MyClass
внутри исходного экземпляра? Будет ли создание декоратора лучшей стратегией?