我正在尝试使用pylint检查我的源代码的约定。不知何故,一些变量名称与常量(const-rgx
)的正则表达式匹配,而不是变量名称正则表达式(variable-rgx
)。如何将变量名称与variable-rgx
匹配?或者我应该使用我的const-rgx
内容扩展variable-rgx
吗?
e.g。
C0103: 31: Invalid name "settings" (should match (([A-Z_][A-Z1-9_]*)|(__.*__))$)
答案 0 :(得分:27)
某些变量名称与常量的正则表达式(const-rgx)匹配,而不是变量名称regex(variable-rgx)。
这些变量是在模块级别声明的吗?也许这就是为什么它们被视为常数(根据PEP-8,至少应该如何宣布它们)。
答案 1 :(得分:10)
我只是禁用了该警告,因为我没有遵循这些命名约定。
为此,请将此行添加到您模块的顶部:
# pylint: disable-msg=C0103
如果要全局禁用它,请将其添加到pylint命令:
python lint.py --disable-msg=C0103 ...
答案 2 :(得分:0)
(should match (([A-Z_][A-Z1-9_]*)|(__.*__))$)
就像你说的那样,const-rgx只匹配大写的名字,或者被双下划线包围的名字。
变量-rgx是
([a-z_][a-z0-9_]{2,30}$)
如果您的变量被称为“设置”,确实应该与变量-rgx
匹配我只能想到两个原因.. 设置是常量,或者它是PyLint中的错误。