0

python 文档说:pickle 可以透明地保存和恢复类实例,但是类定义必须是可导入的,并且与存储对象时存在于同一个模块中。
我可以在存储类的模块中放置一个pickler/unpickler吗?
还是我必须将课程放在模块中?如何?我正在尝试从外部模块中的类中腌制/取消腌制对象。

4

1 回答 1

1

你可以pickle任何python类实例,只要pickle模块可以在你加载pickle时再次导入它。

无论您在 python 代码中的哪个位置使用load()dump(),只要稍后可以通过从同一位置导入它们来再次检索您要腌制的数据,这才重要。

所以,如果你有一个模块,里面foo.bar有一个类Spam,那么只要你能做,from foo.bar import Spam你就可以腌制那个类的实例,因为pickle以后可以从同一个模块再次加载那个类。

于 2013-01-15T23:46:40.333 回答