22

を必要としないと思われる python クラスが多数あり__init__ます。それらを空に初期化することは、完全に受け入れられるか、望ましいことですらあります。PyLint は、これは悪いことだと考えているようです。__init__ないことが悪いにおいである理由についての洞察が欠けていますか? それとも、それらの警告を抑制して、それを乗り越えるべきですか?

4

2 に答える 2

13

これらのクラスを何に使用していますか?

それらが状態を維持する必要のない単なる関数のグループである場合、 は必要ありませんが__init__()、これらの関数をすべて独自のモジュールに移動する方が理にかなっています。

それらが状態を維持する場合 (インスタンス変数がある場合)、__init__()それらの変数を初期化できるようにする必要があります。クラスの作成時にそれらの値を提供しない場合でも、メソッド呼び出しが存在するかどうかに関係なくインスタンス変数を参照しないように、それらを定義することをお勧めします。

そうは言っても、 が必要ない場合は__init__()、その警告を無視してかまいません。

編集:あなたのコメントに基づいて、初期化前に変数を参照する際に発生する AttributeError で問題ないようです。これは、クラスをプログラムするための完全に優れた方法であるため、その場合、PyLint からの警告を無視することは合理的です。

于 2012-02-01T17:53:47.203 に答える
2

通常は、少なくともこの__init__()メソッドを使用してインスタンス変数を初期化します。これを行っていない場合は、必ずその警告をオフにしてください。

于 2012-02-01T17:48:59.200 に答える