파이썬에 대한 기본적인 이해를 위해 작성했습니다
#7 Variable Equality
우리는 두 변수가 같은지 다른지 확인하기 위해서 'is'와 '=='를 사용할 수 있다.
하지만 이 두 방법은 서로 다르다.
is는 Memory Address가 같은지 확인한다.
이를 identityoperator라고 부른다.
같지 않은지 확인하기 위해서는 is not을 사용하면 된다.
== 는 Object State (data)가 같은지 확인한다.
이를 equality operator 라고 부른다.
같지 않은지 확인하기 위해서는 != 을 사용하면 된다.
다음의 상황을 한번 생각해 보자
(1)
a = 10
b = a
a is b # true
a == b # true
(2)
a = 'hello'
b = 'hello'
a is b # true "이전 게시물 마지막에 언급한 것과 같이, 언제나 true일 것이라고 기대하면 안 된다."
a == b # true
(3)
a = [1, 2, 3]
b = [1, 2, 3]
a is b # false
a == b # true
(4)
a = 10
b = 10.0
a is b # false
a == b # true
여기서 None에 대해서 한번 짚고 가자.
None 객체
파이썬에서 None 객체는 "empty" value 혹은 null pointer를 의미한다.
하지만 객체 형태로 메모리에 존재한다.
예를 들어서 해당 메모리의 주소가 0x1000이라고 한다면, None 값을 가지는 변수들은 0x1000이라는 하나의 주소를 참조하게 되는 것이다.
a = None
b = None
c = None
위의 경우, a b c는 0x1000이라는 주소를 공유 참조하게 된다.
'TIL (Today I Learned) > Python' 카테고리의 다른 글
[Python] Numeric types (0) | 2023.04.13 |
---|---|
[Python] 변수와 메모리 (파이썬 최적화) #4 (0) | 2023.04.11 |
[Python] 변수와 메모리 #2 (0) | 2023.04.03 |
[Python] 변수와 메모리 #1 (0) | 2023.04.03 |
[Python] Classes (0) | 2023.04.02 |
댓글