53

Python では、クラスのいくつかのメソッドがヘルパー関数を必要とするが、ヘルパー関数自体がクラス内で何も使用しない場合、ヘルパー関数をクラスの内部または外部に配置する必要がありますか?

内部に入れてみましたが、PyLint はこの関数を外部に置くことができると不平を言っていました。

@カール:

このクラスはソフトウェア アップグレーダーであり、フォルダーがまだ存在しない場合は、ヘルパー関数によって新しいフォルダーが作成されます。クラスは、現時点ではほとんどクラスのコードのみを持つモジュール内にあります。他のクラスは後で追加される可能性があります。

4

2 に答える 2

10

ヘルパー関数は、クラスよりもモジュール レベルに適している可能性があります。

これに同意しない場合は、クラス内の関数で使用できるstaticmethod デコレーターがあります。簡単に言えば、静的メソッドは、同じクラスのオブジェクトのインスタンス間で同じように動作します。インスタンスデータには依存しません。

このため、staticmethodデコレーターは、ドキュメントに記載されているように、暗黙的な最初の引数 (通常は ) を取らないように、関数の動作をレンダリングしselfます)。

于 2011-10-21T21:12:57.810 に答える