Ivo*_*ijk 25
通常不可选择的东西是,例如,套接字,文件(处理程序),数据库连接等.默认情况下,可以对从基本python类型(dicts,lists,primitives,object,object references,甚至是circular)构建(递归)的所有东西进行pickle.
您可以实现自定义酸洗代码,例如,存储数据库连接的配置并在之后恢复它,但您需要特殊的自定义逻辑.
所有这些使得酸洗比xml,json和yaml强大得多(但绝对不可读)
Chr*_*udd 17
这些都是很好的答案,但对于任何刚接触编程但仍然感到困惑的人来说,这里有一个简单的答案:
酸洗,这样您就可以长期存储它,并按当前状态锁定(通常存储在硬盘上)。有点像电子游戏中的保存。
因此,任何正在主动更改的内容(例如与数据库的实时连接)都无法直接存储(尽管您可能会找到一种方法来存储创建新的所需信息)所需的信息,并且可以进行pickle)
额外的定义:序列化是将其打包成可以传递给另一个程序的形式。 反序列化是指对您发送的内容进行解包,以便您可以使用它
酸洗是将 Python 中的对象转换为简单的二进制表示的过程,该表示可用于将该对象写入可存储的文本文件中。这样做是为了存储 python 对象,也称为序列化。您可以从中推断出反序列化或unpickling 的含义。
因此,当我们说一个对象是可picklable 时,这意味着该对象可以使用python 的pickle 模块进行序列化。