파이썬에서는 두 값을 비교할 때 == 연산자를 사용하게 된다.
이는 두 값이 같은지를 비교한다.
동일한 주소에 할당된 객체임을 비교하려면 is 연산자를 사용하면 된다.
>>> a = 1000
>>> b = 1000
>>> a == b
True
>>> a is b
False
>>> id(a), id(b)
(4399073552, 4399073584)
좀 더 작은 정수 값인 256을 바인딩하게 되면 ==와 is 연산자 모두 True를 리턴한다.
이는 a 와 b 모두 동일 객체를 바인딩하고 있다.
>>> a = 256
>>> b = 256
>>> id(a), id(b)
(140399467366080, 140399467366080)
>>> a == b
True
>>> a is b
True
파이썬은 정수 256까지에 대해서는 이미 해당 값이 존재하면 기존의 객체를 바인딩하게 된다.
이는 동일 값은 메모리에 여러번 할당함으로써 발생하는 메모리 낭비를 줄이기 위해서이다.
참조 :
'Programming > Python' 카테고리의 다른 글
python의 LEGB 규칙 (0) | 2022.01.11 |
---|---|
python 함수의 생성과 호출 (0) | 2022.01.11 |
#7 Python 코딩테스트 최단 경로 알고리즘 (0) | 2021.11.17 |
#6 Python 코딩테스트 다이나믹 프로그래밍(DP) (0) | 2021.10.23 |
#5 Python 코딩테스트 이진 탐색 (0) | 2021.10.20 |
댓글