方法名称不符合 snake_case 命名风格
Method name doesn't conform to snake_case naming style
我正在使用我的 pylintrc 文件创建一个简单的项目,并在测试方法中遇到此错误:
method name - test_calculator_add_method_returns_correct_result - doesn't conform to snake_case naming style
class TddInPythonExample(unittest.TestCase):
""" This is a basic test class"""
def test_calculator_add_method_returns_correct_result(self):
""" This test the calculator add method """
calc = Calculator()
result = calc.add(2,2)
self.assertEqual(4, result)
为什么方法名被拒绝了
据此显示:http://pylint-messages.wikidot.com/messages:c0103名称的长度上限为30个字符,其中您的方法名称为49个字符长
修复
您可以缩短方法名称,或更改您的配置以允许更长的方法
如果你是Visual Studio代码用户想忽略这个,你可以添加python.linting.pylintArgs
到.vscode/settings.json
:
{
...
"python.linting.pylintArgs": [
"--disable=C0103"
]
...
}
@jrtapsell 指出得很好
要添加更多信息:
在命名约定方面,为每种类型定义了一个正则表达式。
您可能会注意到名称的长度可以从 2 到 30 个字符及其正则表达式不等。
+-------------------+---------------+-------------------------------------------+
| Type | Option | Default regular expression |
+-------------------+---------------+-------------------------------------------+
| Argument | argument-rgx | [a-z_][a-z0-9_]{2,30}$ |
| Attribute | attr-rgx | [a-z_][a-z0-9_]{2,30}$ |
| Class | class-rgx | [A-Z_][a-zA-Z0-9]+$ |
| Constant | const-rgx | (([A-Z_][A-Z0-9_]*)|(__.*__))$ |
| Function | function-rgx | [a-z_][a-z0-9_]{2,30}$ |
| Method | method-rgx | [a-z_][a-z0-9_]{2,30}$ |
| Module | module-rgx | (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ |
| Variable | variable-rgx | [a-z_][a-z0-9_]{2,30}$ |
| Variable, inline1 | inlinevar-rgx | [A-Za-z_][A-Za-z0-9_]*$ |
+-------------------+---------------+-------------------------------------------+
此外,如果您还没有生成 .pylinrc 文件,您可以使用以下命令生成
命令。
pylint --generate-rcfile | out-file -encoding utf8 .pylintrc
然后你可以在.pylinrc文件中改变命名大小写的类型,
这里有一些流行的案例和示例用例。
PascalCase:新对象
驼峰式:newObject
PascalCase:LongFunctionName()
驼峰式:longFunctionName()
请注意当您遇到此类错误时该行。您需要以 snake_case 样式提及您的函数名称。
也就是说
"def TddInPythonExample():": -> def dd_in_python_example():
我正在使用我的 pylintrc 文件创建一个简单的项目,并在测试方法中遇到此错误:
method name - test_calculator_add_method_returns_correct_result - doesn't conform to snake_case naming style
class TddInPythonExample(unittest.TestCase):
""" This is a basic test class"""
def test_calculator_add_method_returns_correct_result(self):
""" This test the calculator add method """
calc = Calculator()
result = calc.add(2,2)
self.assertEqual(4, result)
为什么方法名被拒绝了
据此显示:http://pylint-messages.wikidot.com/messages:c0103名称的长度上限为30个字符,其中您的方法名称为49个字符长
修复
您可以缩短方法名称,或更改您的配置以允许更长的方法
如果你是Visual Studio代码用户想忽略这个,你可以添加python.linting.pylintArgs
到.vscode/settings.json
:
{
...
"python.linting.pylintArgs": [
"--disable=C0103"
]
...
}
@jrtapsell 指出得很好
要添加更多信息:
在命名约定方面,为每种类型定义了一个正则表达式。
您可能会注意到名称的长度可以从 2 到 30 个字符及其正则表达式不等。
+-------------------+---------------+-------------------------------------------+
| Type | Option | Default regular expression |
+-------------------+---------------+-------------------------------------------+
| Argument | argument-rgx | [a-z_][a-z0-9_]{2,30}$ |
| Attribute | attr-rgx | [a-z_][a-z0-9_]{2,30}$ |
| Class | class-rgx | [A-Z_][a-zA-Z0-9]+$ |
| Constant | const-rgx | (([A-Z_][A-Z0-9_]*)|(__.*__))$ |
| Function | function-rgx | [a-z_][a-z0-9_]{2,30}$ |
| Method | method-rgx | [a-z_][a-z0-9_]{2,30}$ |
| Module | module-rgx | (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ |
| Variable | variable-rgx | [a-z_][a-z0-9_]{2,30}$ |
| Variable, inline1 | inlinevar-rgx | [A-Za-z_][A-Za-z0-9_]*$ |
+-------------------+---------------+-------------------------------------------+
此外,如果您还没有生成 .pylinrc 文件,您可以使用以下命令生成 命令。
pylint --generate-rcfile | out-file -encoding utf8 .pylintrc
然后你可以在.pylinrc文件中改变命名大小写的类型, 这里有一些流行的案例和示例用例。
PascalCase:新对象 驼峰式:newObject PascalCase:LongFunctionName() 驼峰式:longFunctionName()
请注意当您遇到此类错误时该行。您需要以 snake_case 样式提及您的函数名称。 也就是说
"def TddInPythonExample():": -> def dd_in_python_example():