python code convention using pylint

2019-04-06 02:29发布

问题:

I'm trying out pylint to check my source code for conventions. Somehow some variable names are matched with the regex for constants (const-rgx) instead of the variable name regex (variable-rgx). How to match the variable name with variable-rgx? Or should I extend const-rgx with my variable-rgx stuff?

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

回答1:

Somehow some variable names are matched with the regex for constants (const-rgx) instead of the variable name regex (variable-rgx).

Are those variables declared on module level? Maybe that's why they are treated as constants (at least that's how they should be declared, according to PEP-8).



回答2:

I just disable that warning because I don't follow those naming conventions.

To do that, add this line to the top of you module:

# pylint: disable-msg=C0103

If you want to disable that globally, then add it to the pylint command:

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


回答3:


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

like you said that is the const-rgx that is only matching UPPERCASE names, or names surrounded by double underscores.

the variables-rgx is

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

if your variable is called 'settings' that indeed should match the variables-rgx

I can think of only 2 reasons for this.. either settings is a constant or it is a bug in PyLint.