2009-04-02 18 views
9

私は、ソースコードの慣習をチェックするためにpylintを試しています。何らかの変数名は、変数名regex(variable-rgx)ではなく、定数正規表現(const-rgx)と一致しています。変数名をvariable-rgxとどのように一致させるか?またはのものをconst-rgxに追加する必要がありますか?pylintを使用したPythonコードの規約


C0103: 31: Invalid name "settings" (should match (([A-Z_][A-Z1-9_]*)|(__.*__))$)

答えて

27

何らかの変数名は、変数名regex(variable-rgx)ではなく、定数(const-rgx)の正規表現と一致しています。

これらの変数はモジュールレベルで宣言されていますか?おそらく、彼らが定数として扱われているのかもしれません(少なくともPEP-8によると宣言すべきです)。

+1

実際の正規表現ではなく、どの正規表現が使用されているのかを知るための+1。 – DNS

+0

実際にはモジュールレベルで宣言されています! –

+3

最も厄介な警告は、このチェックが'if __name__ == '__main __' 'ブロックでポップアップするときに起こりますが、そこにあるすべての変数がまだモジュールレベルにあるので正しいです。この問題を克服する最も簡単な方法は、別のmain(...)関数を呼び出すことです – van

10

これらの命名規則に従わないため、この警告を無効にするだけです。

# pylint: disable-msg=C0103 

をグローバルに、そしてpylintコマンドに追加することを無効にする場合:モジュールあなたの一番上に次の行を追加し、それを行うために

python lint.py --disable-msg=C0103 ... 
0

(should match (([A-Z_][A-Z1-9_]*)|(__.*__))$) 

のように、それは大文字の名前または二重のアンダースコアで囲まれた名前と一致するconst-rgxです。あなたの変数が実際に変数-RGX

私は、このためだけに2つの理由を考えることができ

.. のいずれかの設定を一致させる必要があります「設定」と呼ばれる場合

変数-RGXは

([a-z_][a-z0-9_]{2,30}$)

です定数であるか、PyLintのバグです。

関連する問題