Jestem obecnie robi coś podobnego do zapytania poser, jednak używam podklasy defaultdict, która ma funkcję składową, która jest używana jako default_factory. Aby mój kod działał poprawnie (wymagałem zdefiniowania funkcji w czasie wykonywania), dodałem po prostu kod do przygotowania obiektu do wytrawiania.
Zamiast:
...
pickle.dump(dict, file)
...
Używam tego:
....
factory = dict.default_factory
dict.default_factory = None
pickle.dump(dict, file)
dict.default_factory = factory
...
To nie jest dokładny kod użyłem jako mojego drzewa jest obiektem, który tworzy instancje tego samego typu drzewka jako żądane są indeksy (dlatego używam rekurencyjnej funkcji członkowskiej do wykonywania operacji pikle przed/po), ale ten wzór również odpowiada na pytanie.
Czy możesz rozpakować dla mnie, jak to działa? Jestem zaintrygowany ... – Fred