2024-10-03 11:17:51 发布
网友
我知道在python3.x中我可以使用非ASCII标识符(pep3131)。在
x1 = 2 x2 = 4 Δx = x2 - x1 print(Δx)
Python2.7中有这样的特性吗?也许,有人把它移植到2.x分支吗?在
好吧,我是说,从技术上讲,这就是你所要求的:
>>> x1 = 2 >>> x2 = 4 >>> locals()[u'Δx'] = x2 - x1 >>> print locals()[u'Δx'] 2
不,Python2没有这样的特性;名称被限制为只使用ASCII字母和数字。在
参见参考手册的Identifiers and Keywords部分:
Identifiers (also referred to as names) are described by the following lexical definitions:identifier ::= (letter|"_") (letter | digit | "_")* letter ::= lowercase | uppercase lowercase ::= "a"..."z" uppercase ::= "A"..."Z" digit ::= "0"..."9"
Identifiers (also referred to as names) are described by the following lexical definitions:
identifier ::= (letter|"_") (letter | digit | "_")* letter ::= lowercase | uppercase lowercase ::= "a"..."z" uppercase ::= "A"..."Z" digit ::= "0"..."9"
正是PEP 3131扩展了python3可能的字符范围。在
将它移植到2.x分支中没有什么意义;它仍然是一个利基的“特性”,它要求运行代码的每个人都安装一个经过特殊修补和编译的解释器。在
请注意,这一更改并不简单;python2标识符是字节字符串,不是unicode值。您必须在解释器中找到处理标识符的所有位置,并验证这些位置是否可以处理非ASCII值,或者为unicode字符串重新配置这些位置。这远远超出了编译器的范围!在
好吧,我是说,从技术上讲,这就是你所要求的:
不,Python2没有这样的特性;名称被限制为只使用ASCII字母和数字。在
参见参考手册的Identifiers and Keywords部分:
正是PEP 3131扩展了python3可能的字符范围。在
将它移植到2.x分支中没有什么意义;它仍然是一个利基的“特性”,它要求运行代码的每个人都安装一个经过特殊修补和编译的解释器。在
请注意,这一更改并不简单;python2标识符是字节字符串,不是unicode值。您必须在解释器中找到处理标识符的所有位置,并验证这些位置是否可以处理非ASCII值,或者为unicode字符串重新配置这些位置。这远远超出了编译器的范围!在
相关问题 更多 >
编程相关推荐