2017-10-01 4 views
1

:현재 sys.maxsize에 가능한 값은 무엇입니까? <a href="https://docs.python.org/2/library/sys.html" rel="nofollow noreferrer">the latest Python 2 documentation</a>에서

sys.maxsize

가장 큰 긍정적 플랫폼의 Py_ssize_t 유형에서 지원 정수, 따라서 최대 크기 목록, 문자열, dicts, 그리고 다른 많은 용기를 가질 수있다 . the latest Python 3 documentation에서

:

sys.maxsize

최대 값을 취할 수 Py_ssize_t 타입의 변수를 제공하는 정수. 일반적으로 32 비트 플랫폼에서는 2 ** 31 - 1이고 64 비트 플랫폼에서는 2 ** 63 - 1입니다.

sys.maxsize 파이썬 3 문서에 지정된 값 파이썬 2 in this file 사용되는 값 :

  • 2 ** 31-1 = 2,147,483,647;
  • 2 ** 63-1 = 9223372036854775807.

내 질문은 : sys.maxsize 파이썬 2에서 취할 수있는 가능한 값은 무엇인가? 이 두 부분이 가능한 값의 일부입니까, 아니요? 가능한 다른 값이 있습니까 (예 : 다른 플랫폼 또는 운영 체제에서)? Python 3에서도 가능한 값을 찾는 것이 흥미로울 것입니다.

관련 질문 :

답변

4
  • sys.maxsize 당신에게 CPython을 컴파일하는 데 사용되는 C 컴파일러에 대해 뭔가를 말하고, 그래서 그것은에있다 파이썬 2와 파이썬 3 사이에는 차이가 없습니다됩니다 C 컴파일러와 컴파일 된 파이썬 버전이 아닌 사용 된 옵션을 사용하십시오.
  • 플랫폼 C 컴파일러의 ssize_t 유형에 맞는 최대 양의 정수입니다. 내가 본 모든 플랫폼에서 32 비트 또는 64 비트 부호있는 2의 보수를 나타내는 정수는 이미 발견 한 두 개의 특정 값과 정확히 일치합니다.
  • 파이썬은 모든 C 컴파일러가 구현할 새로운 C 개념을 위해 자체적으로 typedef (C 레벨에서)를 작성해야했기 때문에 docs에 type Py_ssize_t이라고합니다. 파이썬 고유의 typedef는 일반적으로 모든 알려진 C 컴파일러가 따라 잡은 후에도 소스 코드에 머물러 있습니다 ("파손하지 않고 수정하지 마십시오").
+1

는 [여기가 정의하고 어디 (https://github.com/python/cpython/blob/288d1daadaddf6ae35cf666138ba4b5d07449657/Include/pyport.h#L108-L111) –

관련 문제