Python sys.maxint, sys.maxunicode en Linux y Windows

En Debian Linux 6 de 64 bits:

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 

En Windows 7 de 64 bits:

 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 

Ambos sistemas operativos son de 64 bits. Tienen sys.maxunicode, según wikipedia. Hay 1,114,112 puntos de código en Unicode. ¿Es sys.maxunicode en Windows incorrecto?

¿Y por qué tienen diferentes sys.maxint?

No sé cuál es tu pregunta, pero sys.maxunicode no está mal en Windows.

Ver los documentos :

sys.maxunicode

Un entero que proporciona el punto de código admitido más grande para un carácter Unicode. El valor de esto depende de la opción de configuración que especifica si los caracteres Unicode se almacenan como UCS-2 o UCS-4.

Python en Windows usa UCS-2, por lo que el punto de código más grande es 65,535 (y los caracteres del plano suplementario están codificados por 2 * 16 bits “pares sustitutos”).

Sobre sys.maxint , esto muestra en qué punto Python 2 cambia de “enteros simples” ( 123 ) a “enteros largos” ( 12345678987654321L ). Obviamente, Python para Windows usa 32 bits, y Python para Linux usa 64 bits. Desde Python 3, esto se ha vuelto irrelevante porque los tipos enteros largos y simples se han fusionado en uno solo. Por lo tanto, sys.maxint se ha ido de Python 3.

Respecto a la diferencia es sys.maxint, consulte ¿Cuál es el tamaño de bit de largo en Windows de 64 bits? . Python usa el tipo largo internamente para almacenar un número entero pequeño en Python 2.x.