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

在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位的。 他们有sys.maxunicode, 根据wikipedia有unicode的1,114,112个码数据点。 Windows上的sys.maxunicode错误?

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

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

看文档 :

sys.maxunicode

给出Unicode字符支持的最大代码点的整数。 它的值取决于配置选项,该选项指定是否将Unicode字符存储为UCS-2或UCS-4。

在Windows上的Python使用UCS-2,所以最大的代码点是65535(和补充平面字符编码2 * 16位“代理对”)。

关于sys.maxint ,这表明Python 2从“简单整数”( 123 )切换到“长整数”( 12345678987654321L )。 很显然Python for Windows使用32位,Python for Linux使用64位。 自从Python 3以来,这已经变得无关紧要了,因为简单和长整型被合并为一个。 因此, sys.maxint从Python 3中消失了。

有关不同的是sys.maxint,请参阅64位Windows上长的位大小是什么? 。 Python在内部使用long类型在Python 2.x上存储一个小整数。