需要一种方法来指示/强制某些方法只能在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
对于每个类方法可用的所需变量有什么用处。
任何有关在何处以及如何实现此功能的帮助将不胜感激。