python - Python 是否禁止使用两个外观相似的 Unicode 标识符?
问题描述
我在玩 Unicode 标识符时偶然发现了这个:
>>> , x = 1, 2
>>> , x
(1, 2)
>>> , f = 1, 2
>>> , f
(2, 2)
这里发生了什么?为什么 Python 会替换 引用的对象,但只是有时?该行为在哪里描述?
解决方案
所有的标识符在解析的时候都被转换成正常形式的NFKC;标识符的比较基于 NFKC。
您可以unicodedata
用来测试转换:
import unicodedata
unicodedata.normalize('NFKC', '')
# f
这将表明在解析中''
被转换为。'f'
导致预期:
= "Some String"
print(f)
# "Some String"
推荐阅读
- regex - 正则表达式
- reactjs - React -ComponentDidMount 工作,但再次点击每个响应给出错误
- javascript - 如何拆分遍历一个巨大数组的过程?
- ruby-on-rails - 在 RoR 中的线程中运行刮板
- python - 通过跳过第一个来更改列的数字名称
- r - 为 fileInput 按钮使用 shinyWidgets
- java - 遍历两个列表时如何检查字符串是否相等?
- angular - 尝试打开没有关联输入的 MatDatepicker
- javascript - Razor 页面 Google Chrome 默认 DataPicker
- javascript - 成功登录时 $_SESSION 不起作用