Weil sie keine Unterstützung dafür codierten. C-Level-Typen (und sogar Module, die in Python geschrieben sind, werden mit einem C-Level-Typ implementiert) erfordern die explizite Codierung der pickle
-Unterstützung.
Es ist nicht sehr einfach zu bestimmen, was gebeizt werden soll, wenn ein module
eingemischt werden darf; das Importieren des gleichen Namens auf der anderen Seite scheint einfach zu sein, aber wenn Sie tatsächlich versuchen, das Modul selbst zu beizen, wäre die Sorge, dass Sie auch den Modulstatus pürieren möchten. Es ist noch verwirrender, wenn das Modul ein C-Erweiterungsmodul ist, bei dem der Modulstatus nicht einmal Python selbst ausgesetzt ist, sondern nur intern auf der C-Ebene verwendet wird.
Vorausgesetzt, dass Sie in der Regel bestimmte Dinge aus einem Modul, nicht das gesamte Modul (die in der Regel nicht als State, nur auf der obersten Ebene importiert wird) möchten, sind die Vorteile der Unterstützung Beizen für Module begrenzt, und die Semantik sind unklar, sie haben sich nicht darum gekümmert, es umzusetzen.
@Tommy-Module sind Objekte – MaxB
isinstance (math, object) => True – MaxB
richtig, sorry. Ich habe versucht zu verstehen, was ist das erwünschte Ergebnis, ein Modul zu beizen? Der Code? Der Staat? – Tommy