CPython에서 -5 ~ 256 사이의 값을 가지는 정수타입 객체

CPython에서는 흥미로운 사실이 발견된다.

변수에 값을 대입하는 흔한 식 a = 1 에서 = 연산자는 1이라는 값을 a에다가 할당하겠다는 뜻이다.

이것은 1이라는 값을 가진 a라는 객체를 생성하겠다는 뜻과 같다.


1
2
3
4
5
6
7
8
9
10
>>> id(5)
10914624

>>> a = 5
>>> id(a)
10914624

>>> b = 3 + 2
>>> id(b)
10914624

위의 코드에서 5라는 정수는 10914624 라는 객체 id를 가지고 있다.

하지만 a와 b 변수에 5라는 값을 할당했는데도 새로운 객체가 생성된 것이 아닌 같은 id를 가지게 된다.


https://docs.python.org/3/c-api/long.html#c.PyLong_FromLong

자세히 보기