17

いくつかのメソッドに対して「NotImplementedError」を発生させるPythonクラスがあり、そのクラスは、独自のファイルで定義されている他のいくつかのクラスに継承されています。

抽象クラスを持つファイルでPylintを実行すると、常に「抽象クラスが参照されていません」というメッセージが表示されます。ピリントが妄想的であるだけなのか、それとも実際に修正する必要があるものがあるのだろうかと思っていました。

4

2 に答える 2

25

クラスにメソッドを作成しNotImplementedErrorている場合は、pylintにこれが抽象クラスであると思わせるだけで十分です。

pylintは、プロジェクトの残りの部分から分離された各ファイルをチェックするため、ファイル内のこのクラスから継承する人がいない場合は、このメッセージが表示されます。

非アクティブ化する場合は、クラス定義の前にこのコメントを付ける必要があります。

#pylint: disable=R0921
于 2011-11-24T19:21:12.857 に答える
6

Pylintは各ファイルを「自己完結型」と見なすため、抽象クラスを定義したがサブクラスを定義していないファイルをチェックすると、R0921(http://www.logilab.org/card/pylintfeatures)で文句を言います。

実際、メッセージタイプは「R」です。これは「リファクタリング」を表します(http://www.logilab.org/card/pylint_manual#pylint-output):Pylintは「グッドプラクティス」を提案していますが、喜んで離れることができますそのようです。

于 2011-11-24T19:13:41.907 に答える