TNT*_*Tzx 8 python pylint vscode-python
每当发生类似情况时,Pylint 都会发出警告:
import typing
SEQ_FR = typing.TypeVar("SEQ_FR")
#^^^^^ gets underlined with the warning
Run Code Online (Sandbox Code Playgroud)
警告是这样的:Type variable name "SEQ_FR" doesn't conform to predefined naming style. pylint(invalid-name)
我尝试搜索 Pylint 的文档,但没有找到所使用的确切正则表达式/规范。与常规变量、方法、函数、类等不同,我似乎也无法将自定义正则表达式传递到 Pylint 上。
Pylint 使用什么规范将 TypeVar 变量标记为有效或无效名称?
Mar*_*ers 11
您可以在Pylint 消息文档中找到使用的规则;这个错误是named的,所以具体的文档可以在invalid-name/C0103页面invalid-name上找到,该页面的Predefined Naming Patterns部分有一条规则:TypeVar
\n\n名称类型:
\ntypevar
\n好名称:T,_CallableT,_T_co,AnyStr,DeviceTypeT,IPAddressT
\n坏名称:DICT_T,CALLABLE_T,ENUM_T,DeviceType,_StrType,TAnyStr
这里没有记录确切的正则表达式规则,但当您使用 --include-naming-hint=y命令行开关*)时,Pylint 实际上会包含错误消息中使用的正则表达式:
\n\n\n
Type variable name "SEQ_FR" doesn\'t conform to predefined naming style (\'^_{0,2}(?!T[A-Z])(?:[A-Z]+|(?:[A-Z]+[a-z]+)+T?(?<!Type))(?:_co(?:ntra)?)?$\' pattern) (invalid-name)
或者,您可以在源代码中找到类型变量的正则表达式。
\n打破模式,类型变量名称在遵循以下规则时是合规的:
\n换句话说,typevar 名称必须是 PascalCase \xe2\x9c\x9d)或全部大写,可以选择受保护 ( _) 或私有 ( __),可以选择标记为协变 ( _co) 或逆变 ( _contra),并且不应以Type结尾。
您的示例的合规名称可以是SeqFr或SeqFrT;后缀T旨在明确 SnakeCaseT 名称是一个 typevar。
或者,您可以使用 --typevar-rgx=<regex>命令行开关*)指定您自己的正则表达式。
注意:正如 Pierre Sassoulas(Pylint 的维护者)在评论中指出的那样:对于 typevar 命名还没有 PEP-8 约定;相反,PyLint 团队捕获了 Python 项目中观察到的规则和类型提示文档。因此,如果要制定正式公约,确切的规则仍然可能会发生变化。
\n*) Python 扩展的 Visual Studio Code 设置包括一个python.linting.pylintArgs采用命令行开关列表的选项。
\xe2\x9c\x9d) PascalCase也称为CapitalizedWords、UpperCamelCase或StudlyCase。不要将其与camelCase(首字母小写)或snake_case(全部小写并带下划线)混淆。我经常这样做!如果有疑问,维基百科有一个方便的多词格式表。
\n| 归档时间: |
|
| 查看次数: |
2102 次 |
| 最近记录: |