用python保存对象

用python保存对象,python,Python,我正在用Python编写一个二叉树,以动物为叶子,以歧视性问题为中间节点。叶子和问题都是对象。现在我希望能够将动物和中间问题保存为pickle文件。 但我不知道如何识别各种酸洗对象。通常您会创建一个对象,如下所示:monkey=Animal('Is Is a monkey?'),以便您可以通过名称monkey来引用该对象。 但随着树的生长,叶对象猴子会变成一个中间节点,问题是“它像花生一样吗”,一个新猴子节点的是出口,另一个(新)动物的否出口。那么,如何对这些对象进行pickle呢?我将利用从根

我正在用Python编写一个二叉树,以动物为叶子,以歧视性问题为中间节点。叶子和问题都是对象。现在我希望能够将动物和中间问题保存为pickle文件。
但我不知道如何识别各种酸洗对象。通常您会创建一个对象,如下所示:
monkey=Animal('Is Is a monkey?')
,以便您可以通过名称monkey来引用该对象。
但随着树的生长,叶对象猴子会变成一个中间节点,问题是“它像花生一样吗”,一个新猴子节点的是出口,另一个(新)动物的否出口。那么,如何对这些对象进行pickle呢?

我将利用从根节点开始的预顺序遍历,并使用

然后,当您想要读取文件时,可以使用相同类型的遍历将树读回程序


所有节点都可以从根节点访问,因此这些类型的遍历非常方便,便于编写和读取二进制搜索树。去年在我的数据结构课程中,我使用这种方法完成了一项非常类似的作业。

你可能应该有两种不同类型的节点,而不是把问题塞进
动物
节点。此外,通常不会修改酸洗对象的结果;这是一个静态表示。如果修改树,则再次对整个树进行pickle,而不是尝试修改pickle表单。根据酸洗的原因,您可能希望对树进行酸洗更改,可以在取消酸洗后使用该更改重建树,而不是重复重新酸洗整个树。