Search

is 연산자는 정확하게 사용한다.

생성일
2022/10/31 13:21
태그
파이썬은 동등 비교 연산자(==)와 is 연산자를 모두 지원한다. 두 결과는 같을 때도 있지만, 다를 때도 있다. 만약 두 문자열이 같은 값을 가지고 있다면 동등 비교 연산자는 항상 True를 반환한다.
a = 'cat' b = 'cat' a == b # 반드시 True 반환
Python
복사
But, is 연산자는 두 문자열이 같은 값을 가지고 있다고 하더라도 문자열 비교 결과가 항상 True일 것이라고 보장할 수 없으며, 이 결과에 의존하기에는 리스크가 크다. 똑같이 만들어진 문자열 또한 동등 비교 연산자 대신 is 연산자를 사용하여 값을 비교하는 경우, 결과가 True일 것이라고 보장할 수 없다.
s1 = "나는 김도민" s2 = "나는" + "김도민" s1 == s2 # True s1 is s2 # False
Python
복사
두 문자열이 같은 내용을 가지고 있다고 하더라도 메모리상에 동일한 객체를 참조하고 있지 않을 수도 있다는 것을 알 수 있으며, 이런 경우 is 연산자는 False를 반환한다.
동일한 객체의 값을 비교하고 있다는 것이 확실하다면 is 키워드는 믿을만 하며 더 효율적이다.
a_value = my_function() if a_value is None: # None이 반환되면 특별한 행동을 취해라
Python
복사