在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?
我不知道您的问题是什么,但 在Windows上sys.maxunicode没有 错 。
sys.maxunicode
见文档:
sys.maxunicode 一个整数,为Unicode字符提供最大的支持代码点。此值取决于配置选项,该选项指定将Unicode字符存储为UCS-2还是UCS-4。
一个整数,为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。
sys.maxint
123
12345678987654321L