None 은 singleton 객체라는 것으로 프로그램이 실행될 때 유일한 객체로 존재합니당. 쉽게 말하면 사용되는 모든 메모리 주소 중에 한 곳에만 위치하게 되는거죠. a = None b = None 과 같이 할당하더라도 id(a), id(b) 를 확인해보시면 항상 같은 값을 나타냅니다. 동일한 값이야 메모리 곳곳에 위치할 수 있지만, None 은 유일하기 때문에 값을 비교하기 위한 == 을 쓰는게 아니라 그 성격에 맞게 identity를 확인하기 위한 is 를 씁니다. 이는 pep8 에서도 권장하고 있습니다. https://peps.python.org/pep-0008/#programming-recommendations
+0
2022년 7월 20일
"동일한 값이야 메모리 곳곳에 위치할 수 있지만" 이 이해가지 않습니다. 방금 막 x = 12 y = 12 # x is y print(id(x)) print(id(y)) 를 돌려봤는데 x,y 는 같은 값이고, 같은 메모리를 가리키고 있습니다.
댓글 6개