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__.
