我想在我的 Python 3 脚本中为变量名使用更多种类的 Unicode 符号。在 Python 3 变量名中可以使用哪些字符?
我最近开始使用 Unicode 符号(例如希腊和亚洲符号)进行代码混淆。
我想在我的 Python 3 脚本中为变量名使用更多种类的 Unicode 符号。在 Python 3 变量名中可以使用哪些字符?
我最近开始使用 Unicode 符号(例如希腊和亚洲符号)进行代码混淆。
根据PEP 3131,标识符的第一个字符需要属于ID_Start
,其余为ID_Continue
,定义如下:
ID_Start
被定义为具有大写字母 (Lu)、小写字母 (Ll)、大写字母 (Lt)、修饰字母 (Lm)、其他字母 (Lo)、字母数字 (Nl)、下划线、和带有 Other_ID_Start 属性的字符。XID_Start 然后在规范化下关闭此集合,方法是删除其 NFKC 规范化不再具有该形式的所有字符ID_Start ID_Continue*
。
ID_Continue
定义为 中的所有字符ID_Start
,加上非间距标记 (Mn)、间距组合标记 (Mc)、十进制数 (Nd)、连接符标点 (Pc) 和带有 Other_ID_Continue 属性的字符。再次,XID_Continue
在 NFKC 标准化下关闭该集合;它还增加U+00B7
了对加泰罗尼亚语的支持。
这是一个很长的列表(目前大约 120.000 个字符)——幸运的是 GitHub 上有一个有用的项目,其中包含列表和生成它的脚本。