11

私はいくつかの名前付きタプルを使用して情報を渡す小さな python モジュールを作成しました。私はこれらの型を考慮し、クラス名の PEP8 規則 (CamelCased) に従って名前を付けました。ただし、pylint には次の行が表示されます。

PersonData = collections.namedtuple('PersonData', 'name surname age')

モジュールのグローバル スコープで、無効な定数名 'PersonData' になります。

名前付きタプルを誤用していませんか? Pythonicの推奨事項は何ですか? 警告を抑制するか、構造体の名前を PERSON_DATA に変更するか、完全なクラスにすることしか考えられません。ただし、私の場合、メソッドを持つことは意味がないことに注意してください。

答えが警告を抑制することである場合。これは、pylint と名前付きタプルで繰り返し発生する問題ではないでしょうか?

(pylint-0.26.0、python-2.7.4 を使用)

4

4 に答える 4

6

この問題は、新しいバージョンの pylint で解決されています。

私のシステムは、ubuntu (13.04) リポジトリ (pylint-0.26.0) からバージョンを選択していました。を使用して、virtualenv名前付きタプルを認識し、実際にクラスと同じ形式を使用する pylint-1.0.0 を pip install できます。

フィールド文字列に対して文字列操作を行っている場合は、それが検出されないことに注意してください。例えば:

PersonData = collections.namedtuple('PersonData', 'name ' + 'surname age')

pylint-1.0.0 は、無効な定数名のエラー コードを吐き出します。この場合の唯一の回避策は、 Martijn Pietersの提案に従って警告を無効にすることです。

于 2013-11-25T08:46:30.427 に答える
5

ここでは無視してかまいpylintません。キャメル ケースの命名規則を正確に使用しています。

警告を抑制することができます。

PersonData = collections.namedtuple('PersonData', 'name surname age')  # pylint: disable-msg=C0103

namedtupleはクラス ファクトリであるため、クラスの命名規則を使用してください。

于 2013-11-14T08:46:48.623 に答える