2

Node特定のメソッドがツリー データ構造のルートでのみ実行できることを示す/強制する方法が必要です。私はPython 2.xで作業しています

Node クラスを別の Edge クラスと組み合わせて使用​​し、ツリー データ構造を構築します (この場合、エッジは文字で、ノードは単語です)。

Node のいくつかのメソッドは、Node のすべてのインスタンスに必要です。たとえばget_word、ツリーを逆方向に実行して、その Node によって表される単語を決定します。しかし、 のような他の Node 操作は、load_word_into_treeよりクラス メソッドのように見えます。それらはツリー全体で動作します。さらに、その呼び出しを構造化した方法では、ルート ノードとルート ノードのみを入力として必要とします。他のノードで呼び出されると、ツリーが完全に台無しになります。

2 つのオプションが表示されます。

  • インスタンスload_word_into_treeメソッドを作成しますが、ルート以外のノードで呼び出されるとエラーが発生します。私はこれに傾いていますが、何かが正しくないようです。私の考えでは、インスタンス メソッドはすべてのインスタンスが必要とするメソッドであり、このメソッドをルートにしか使用できない場合にすべてのノードに追加するのは無駄に思えます。

  • クラスload_word_into_treeメソッドを作成しますが、ルート ノードを引数として渡します。これは「無駄な」インスタンス メソッドの問題を回避しますが、入力として単一のノードを取るため、クラス メソッドの概念の誤用のようにも見えます。clsさらに、すべてのクラス メソッドで使用できる 必要な変数をどのように使用できるかわかりません。

この機能をどこでどのように実装するかについての助けをいただければ幸いです。

4

1 に答える 1

2

TreeのサブクラスをNode作成し、代わりにそのクラスにツリーのみのメソッドを追加してください。

次に、ルートを のインスタンスにします。Tree残りのグラフはNodeインスタンスを使用します。

于 2013-01-28T00:07:02.573 に答える