Python中标识符的语法基于Unicode标准附件UAX-31,其详细说明和更改如下所述;有关更多详细信息,另请参阅PEP 3131。
在ASCII范围(U + 0001..U + 007F)中,标识符的有效字符与Python 2.x中的相同:大写字母和小写字母A至Z,下划线_和(除第一个字符外),数字0到9。
Python 3.0引入了ASCII范围之外的其他字符(请参阅PEP 3131)。对于这些字符,分类使用unicodedata模块中包含的Unicode字符数据库的版本。
标识符的长度是无限的。情况很重要。
identifier ::= xid_start xid_continue*
id_start ::= <all characters in general categories Lu, Ll, Lt, Lm,
Lo, Nl, the underscore, and characters with the Other_ID_Start property> id_continue ::=
上面提到的Unicode类别代码代表:
解析时,所有标识符都转换为标准形式NFKC;标识符的比较基于NFKC。
可以在https://www.dcl.hpi.uni- potsdam.de/home/loewis/table-3131.html上找到列出Unicode 4.1的所有有效标识符字符的非规范HTML文件。
标识符(也称为 名称 )由以下词汇定义描述:
identifier ::= (letter|"_") (letter | digit | "_")*
letter ::= lowercase | uppercase
lowercase ::= "a"..."z"
uppercase ::= "A"..."Z"
digit ::= "0"..."9"
标识符的长度是无限的。情况很重要。