特定の行列(リストのリスト)を時計回りに回転させる関数を作成する必要があり、それをTable
クラスで使用する必要があります。クラスrotateMatrixClockwise
の関数内から簡単に呼び出すことができるように、このユーティリティ関数(と呼ばれる)をどこに配置する必要がありますか?Table
12192 次
2 に答える
13
静的関数にします...
- @staticmethodデコレータを追加します
- 最初の引数として「self」を含めないでください
あなたの定義は次のようになります:
@staticmethod
def rotateMatrixClockwise():
# enter code here...
これにより、次の呼び出しによって「テーブル」をインポートしたすべての場所で呼び出し可能になります。
table.rotateMatrixClockwise()
デコレータは、暗黙の最初の引数が予期されていないことをPythonに通知するためにのみ必要です。メソッド定義をC#/ Javaのように動作させたい場合は、selfが常に暗黙的であるため、「@classmethod」デコレータを使用することもできます。
これは、Pythonマニュアルから直接提供されているドキュメントです。
注:ユーティリティクラスは、一般的にOOPの「単一責任の原則」に違反しているため、コードをモジュールに直接結合できない場合にのみ使用することをお勧めします。ほとんどの場合、メソッド/メンバーとしてのクラスの機能をクラスに結び付けるのが最善です。
于 2010-06-17T02:02:12.697 に答える
4
クラスのメンバーにしたくない場合は、モジュールTable
に入れることができます。utilities
于 2010-06-15T22:36:48.773 に答える