3. Python 객체 모델
2024년 12월 17일1분 미만
3. Python 객체 모델
3.1 모든 것은 객체
- Python의 객체 모델 (
id
,type
,isinstance
,issubclass
). - 이름(네임)과 객체의 관계: 변수와 메모리 주소의 연결.
- C와 Java와의 차이점.
- Objects and Values Docs
2.1.2.1 객체와 변수의 관계
- Python에서 모든 데이터는 객체이다.
- 변수를 선언하면, 변수는 객체를 참조(reference)한다.
- 변수 자체는 메모리 공간에 값을 저장하지 않고, 객체를 가리키는 참조 역할만 한다.
3.2 Mutable vs Immutable
- 불변 객체(
int
,str
,tuple
) vs 가변 객체(list
,dict
). - Python의 메모리 모델과 객체 참조.
- 착각하기 쉬운
+=
와append
의 동작 차이.
3.3 Special Methods
- 연산자 오버로딩:
__add__
,__radd__
,__sub__
,__mul__
,__truediv__
,__floordiv__
,__pow__
등. - 컨테이너:
__getitem__
,__setitem__
,__delitem__
,__len__
,__contains__
. - 속성 관리:
__getattr__
,__setattr__
,__delattr__
,__getattribute__
. - 반복자:
__iter__
,__next__
. - 호출 가능 객체:
__call__
. - 기타:
__str__
,__repr__
,__eq__
,__hash__
.