После определения класса обновляется путем перекомпиляции script, pickle отказывается сериализовать ранее созданные объекты этого класса, выдавая ошибку: "Невозможно рассортировать объект: это не тот же объект, что и"
Есть ли способ рассказать, что он должен игнорировать такие случаи? Чтобы просто идентифицировать классы по имени, игнорируйте, какой внутренний уникальный идентификатор вызывает несоответствие?
Я бы определенно приветствовал в качестве ответа предложение альтернативного эквивалентного модуля, который решает эту проблему удобным и надежным способом.
Для справки, здесь моя мотивация:
Я создаю среду с высокой производительностью, быстрой итерацией, в которой скрипты Python редактируются в реальном времени. Сценарии повторно перекомпилируются, но данные сохраняются во всех компиляторах. В рамках целей производительности я пытаюсь использовать pickle для сериализации, чтобы избежать затрат на запись и обновление явного кода сериализации для постоянно изменяющихся структур данных.
В основном я сериализую встроенные типы. Я стараюсь избегать значимых изменений в классах, которые я мариную, и при необходимости я использую механизм copy_reg.pickle для выполнения upconversion на unpickle.
Script перекомпиляция не позволяет мне травить объекты вообще, даже если определения классов фактически не изменились (или только изменились мягко).