본문 바로가기
Engineering WIKI/Python

[Python] is 와 ==의 차이점

by wonos 2019. 5. 30.
  • is는 reference equality. 메모리 상의 두 object를 비교한다.(object 비교)
  • 두 reference가 같은 object를 가리키는지 확인할 수 있다. (값 비교)
  • **==**는 value equality을 비교한다. 두 object가 같은 값을 가지는지 알 수 있다.

예시를 보자.

foo = 10
dir(foo) == dir(10)
# True
dir(foo) is dir(10)
# False
  • 파이썬에는 -5부터 256까지의 수가 캐싱되어 있어 이들 값을 가진 변수들은 같은 object로 간주된다는 것이다.
a = 256
b = 256
a == b
# True
a is b
# True

a = 257
b = 257

a == b
# True

a is b
# False

'Engineering WIKI > Python' 카테고리의 다른 글

[Python] pip freeze  (0) 2020.02.02
[Python] shutil 함수  (0) 2019.07.03
[Python] 객체와 인스턴스의 차이  (0) 2019.07.03
[Python] 파이썬2,3 동시사용  (0) 2019.07.02
[Python] string 모듈  (0) 2019.05.27
[Python] tkinter 사용  (0) 2019.02.14
[Python] 2.7 Encoding 에러 해결  (0) 2019.01.26
[Python] 엑셀 코드(xlsx 파일 만들기)  (0) 2018.10.15