Лучший способ сохранить копию объекта внутри одного класса python - PullRequest
0 голосов
/ 11 июля 2020

Я столкнулся с проблемой, если у меня есть объект 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 внутри исходного экземпляра? Будет ли создание декоратора лучшей стратегией?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...