我想配置 Python,以便在标识符(例如变量名、函数名)中遇到非 ASCII 字符时引发错误,但仍接受 UTF-8 编码的字符串(例如“Привет, мир!”)。例如:
# This should raise an error
def тест():
pass
# This should work
text = "Привет, мир!"
我了解
# -*- coding: ascii -*-
,但它会阻止源代码中各处的非 ASCII 字符,包括字符串文字中的字符。
(对于 jupyter 笔记本也是同样的问题)
使用静态代码分析。 Pylint 将报告其默认配置中的问题:
foo.py:2:0: C2401: Function name "тест" contains a non-ASCII character, consider renaming it. (non-ascii-name)
将您的 VCS 配置为运行 pylint 并仅接受提交而不发出警告;或者至少没有 C2401。