ich zur Zeit etwas Ähnliches tue Zu der Frage poser verwende ich jedoch eine Unterklasse von defaultdict, die eine Mitgliedsfunktion hat, die als default_factory verwendet wird. Damit mein Code ordnungsgemäß funktioniert (ich musste die Funktion zur Laufzeit definieren), fügte ich einfach einen Code hinzu, um das Objekt für das Beizen vorzubereiten.
Statt:
...
pickle.dump(dict, file)
...
Ich benutze diese:
....
factory = dict.default_factory
dict.default_factory = None
pickle.dump(dict, file)
dict.default_factory = factory
...
Dies ist nicht der genaue Code, den ich als mein Baum verwendet wird, ist ein Objekt, das Instanzen derselben des Baumes Typ erzeugt als Indizes werden angefordert (daher verwende ich eine rekursive Elementfunktion, um die Vor-/Nachbeizoperationen durchzuführen), aber dieses Muster beantwortet auch die Frage.
Könnten Sie für mich entpacken, wie das funktioniert? Ich bin fasziniert ... – Fred