c.b...@posteo.jp schrieb am 13.05.22 um 12:23:
> Eine Konsequenz scheint zu sein, dass ich eine automatisch erzeugte
> dataclass nicht pickeln kann. Ich bekomme den Fehler
> "_pickle.PicklingError: Can't pickle <class 'types.X'>: attribute lookup X
> on types failed"
>
> Wenn ich aber den Modulnamen ändere
> x.__module__ = '__main__'
> geht es auch mit Pickle.
Ja, das ist auch zu erwarten. Pickle muss die Klasse ja irgendwo her
bekommen, um beim Auspickeln ein Objekt davon erzeugen zu können. Dazu
benötigt es den Package/Modul-Pfad.
Das selbe Problem würdest du mit einem namedtuple haben, mit lokal
innerhalb einer Funktion erzeugten Klassen, oder anderen Datentypen, bei
denen nicht klar ist, woher sie kommen und wie sie zugänglich sind.
Stefan