Травление экземпляров класса, экземпляры которого являются классами - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть класс, экземплярами которого являются классы.Каждый экземпляр имеет свое имя.Я могу добавить это имя к включающему модулю при создании нового класса, что позволяет мне выбрать его.Первоначально я не добавлял имя к модулю, но у меня был метод уменьшение в классе верхнего уровня.К сожалению, в модуле pickle есть какой-то загадочный код, который в особых случаях является подклассом типа и ищет имя в модуле, а не вызывает приведения.Если бы этот код был внутри попытки, и просто продолжал до уменьшение кода в случае сбоя, я думаю, что использование Reduce будет работать нормально.

В любом случае, проблема с простым добавлением имени заключается в том, что наpickle.load, имя не существует и загрузка не удалась.Предположительно, я мог бы добавить getattr в модуль, чтобы интерпретировать имя и создать соответствующий класс, но я понимаю, что не все версии Python поддерживают уровень модуля getattr .

Метод redu * в экземплярах классов позволяет успешно выбирать экземпляры этих экземпляров класса путем воссоздания экземпляров класса в pickle.load, но выбор самих экземпляров класса не работает.

Есть ли какое-нибудь разумное решение, позволяющее производить травление экземпляров класса?

...