一尘不染

Python sys.maxint,Linux和Windows上的sys.maxunicode

linux

在64位Debian Linux 6上:

Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.maxint
9223372036854775807
>>> sys.maxunicode
1114111

在64位Windows 7上:

Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.maxint
2147483647
>>> sys.maxunicode
65535

两种操作系统都是64位的。根据Wikipedia的介绍,它们具有sys.maxunicode。unicode中有1,114,112个代码点。Windows上的sys.maxunicode错误吗?

为什么它们具有不同的sys.maxint?


阅读 333

收藏
2020-06-07

共1个答案

一尘不染

我不知道您的问题是什么,但 在Windows上sys.maxunicode没有

文档

sys.maxunicode

一个整数,为Unicode字符提供最大的支持代码点。此值取决于配置选项,该选项指定将Unicode字符存储为UCS-2还是UCS-4。

Windows上的Python使用UCS-2,因此最大代码点为65,535(并且补充平面字符由2 * 16位“代理对”编码)。

关于sys.maxint,这显示Python
2在什么时候从“简单整数”(123)切换到“长整数”(12345678987654321L)。显然,适用于Windows的Python使用32位,而适用于Linux的Python使用64位。从Python
3开始,这已经变得无关紧要,因为简单和长整数类型已合并为一个。因此,sys.maxint不再是Python 3。

2020-06-07