是否可以使用Python知道chr接受的最大数量?

nbr*_*bro 5 python unicode python-3.x

从Python的chr内置函数文档中,chr接受的最大值是1114111(十进制)或0x10FFFF(基数为16).事实上

>>> chr(1114112)
Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    chr(1114112)
ValueError: chr() arg not in range(0x110000)
Run Code Online (Sandbox Code Playgroud)

我的第一个问题如下,为什么这个数字呢?第二个问题是:如果此数字发生变化,是否可以从Python命令中了解接受的最大值chr

Mar*_*ers 12

用途sys.maxunicode:

给出最大Unicode代码点值的整数,即1114111(0x10FFFF十六进制).

在我的Python 2.7 UCS-2构建中,支持的最大Unicode字符unichr()是0xFFFF:

>>> import sys
>>> sys.maxunicode
65535
Run Code Online (Sandbox Code Playgroud)

但Python 3.3和更新版本切换到Unicode字符串的新内部存储格式,现在总是 最大值0x10FFFF.见PEP 393.

0x10FFFF是Unicode标准中定义的最大Unicode代码点.引用关于Unicode维基百科文章:

Unicode定义了1,114,112个代码点的代码空间,范围为0到10FFFF.