在the latest Python 2 documentation中:
了sys.maxsize
平台支持的最大正整数 Py_ssize_t类型,因此最大大小列表,字符串,dicts和 许多其他容器都可以拥有。
在the latest Python 3 documentation中:
了sys.maxsize
一个整数,给出最大值一个变量类型 Py_ssize_t可以。在32位平台上通常为2 ** 31 - 1 在64位平台上使用2 ** 63 - 1.
Python 2上使用的值sys.maxsize
是in this file,其中包含Python 3文档中指定的值:
我的问题是:{2}可以在Python 2中采用哪些可能的值?这两部分是可能的值吗?是否还有其他可能的值(例如,在其他平台或操作系统上)?找到它在Python 3中可以采用的可能值会很有趣。
相关问题:
答案 0 :(得分:4)
sys.maxsize
告诉你一些用于编译CPython的C编译器,所以Python 2和Python 3之间没有区别。它与C编译器和使用的选项有关,而不是正在编译的Python版本。ssize_t
类型的最大正整数。这是我见过的所有平台上的32位或64位带符号2的补码整数;-)这与您已经找到的两个特定值完全对应。type Py_ssize_t
,因为Python必须为较新的C概念创建自己的typedef(在C级别),等待所有世界的C编译器实现它们。即使在所有已知的C编译器都赶上后,这些特定于Python的typedef通常会在源代码中出现("没有破坏,不能修复")。答案 1 :(得分:1)
两个可能的值取决于python位版本。
+=============+=====================================+======================================+
| | Python 32 bit | Python 64 bit |
+=============+=====================================+======================================+
| sys.version | 3.7.3 ….[MSC v.1916 32 bit (Intel)] | 3.7.4 …..[MSC v.1916 64 bit (AMD64)] |
+-------------+-------------------------------------+--------------------------------------+
| sys.maxsize | 2147483647 | 9223372036854770000 |
+-------------+-------------------------------------+--------------------------------------+