Скопируйте объект Python и сохраните его под другим именем

#python #object #pickle #object-reference

#python #объект #рассол #объект-ссылка

Вопрос:

У меня есть код Python, который использует некоторый одноэлементный класс. Один из вариантов использования, который мне нужен, — это сохранить класс как выделенный объект. Логика приложения определяет, когда читать из выделенного объекта и когда его перестраивать (что-то вроде кэширования).

Проблема в том, что тип / имя объекта идентичны объекту в памяти, и из-за этого, даже при изменении его имени перед его сохранением, я получаю ту же ссылку.

Из-за этого я не могу контролировать копирование значений во время выполнения из маринованного объекта (частично маринованного ..)

Что я могу сделать?

Пример:

 class A:
  some_attribute = ""

A.some_attribute = "a new runtime data"

with open("pickled_object.pk", "wb") as pk:
     pickle.dump(A, pk)

----
"" different startup ability ""

with open("pickled_object.pk", "rb") as pk:
     A = pickle.load(pk)
  

Я надеюсь, вы поняли идею, я отредактирую, если потребуется дополнительная информация..

Комментарии:

1. То, что вы описываете, — это весь смысл синглтона. Должен существовать только один экземпляр этого объекта, и он не должен быть копируемым. Учитывая это, неясно, какого поведения вы ожидаете.

2. «Проблема в том, что тип / имя объекта идентичны объекту в памяти, и из-за этого, даже при изменении его имени перед его сохранением, я получаю ту же ссылку». Я этого не понимаю