2

需要一种方法来指示/强制某些方法只能在Node我的树数据结构的根上完成。我正在使用 Python 2.x

我有一个类 Node,我将它与另一个类 Edge 结合使用来构建树数据结构(在这种情况下,边是字母,节点是单词)。

Node 的每个实例都需要 Node 中的一些方法,例如get_word,它在树中向后运行以确定该 Node 表示的单词。但是其他 Node 操作,比如load_word_into_tree,看起来更像是一个类方法——它们在整个树上操作。此外,按照我构建该调用的方式,它只需要根节点和根节点作为其输入。如果在任何其他节点上调用它,它会完全弄乱树。

我看到两个选项:

  • 创建一个实例方法,但如果在任何不是根的节点上调用它,load_word_into_tree则会引发错误。我倾向于这个,但似乎有些不对劲。在我看来,实例方​​法是每个实例都应该需要的方法,并且当这个方法只能用于根时,将这个方法附加到每个节点上似乎是一种浪费。

  • 创建一个类方法,但将load_word_into_tree根节点作为 arg 传递给它。这解决了“浪费”实例方法的问题,但也似乎是对类方法概念的误用,因为它采用单个节点作为其输入。此外,我不确定cls对于每个类方法可用的所需变量有什么用处。

任何有关在何处以及如何实现此功能的帮助将不胜感激。

4

1 回答 1

2

创建一个Tree子类Node并在该类上添加仅树方法。

然后使您的根成为 的实例Tree,图形的其余部分使用Node实例。

于 2013-01-28T00:07:02.573 回答