[Python] Equality vs Identity(동등성 vs 동일성)
동등성 vs 동일성
파이썬의 값 비교방법
'==' : 동등성(Equality)
'is' : 동일성(Identity)
def return_1000():
return 1000
def return_thousand():
return 1000
a = return_1000()
b = return_thousand()
print(a) # 1000
print(b) # 1000
print(id(a)) # 35920704
print(id(b)) # 35920728
print(a is b) # False
print(a == b) # True
객체의 고유값(identity)을 출력하면 다른값이 출력됨('id')
'is' False 반환
'==' True 반환
is를 통한 비교는 그 객체가 할당된 메모리 공간까지 완전히 동일한지를 비교함
(마치 자바스크립트에서 '==='를 쓰는 것같은?)
두 객체가 id(메모리 공간)까지 완전 동일한지 비교 하려면 'is'
두 객체가 단순히 가지고 있는 값만 동일한지 비교하려면 '=='
True, False나 None같은 값들은 최초 선언시 한 번만 메모리에 할당하고 그 이후에는 최초에 선언된 값을 그대로 사용하도록 한다. 그 말은 True, False를 is, == 로 비교 해도 같게 나온다
is 를 사용하는것이 성능상 우위를 보인다 (단순비교일땐 == 이자만 is로 비교 가능한 상황이면 is를 쓰자)
Author And Source
이 문제에 관하여([Python] Equality vs Identity(동등성 vs 동일성)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@araaaaan/equality-identity저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)