1. 파이썬 객체
ㅇ 파이썬은, 모든 것이 객체 임
- 변수,클래스,함수,리스트,문자열 등 모두가 객체로 취급됨
2. 파이썬 객체 종류
ㅇ 변수 객체
- 파이썬 변수에 값(리터럴)을 저장(대입)시에, 변수는 메모리를 할당 받지 않음
. 우선 값이 메모리를 할당 받아서 객체가 되며,
. 이 객체를 가리키는 것이 변수임
- 즉, 파이썬 변수를 일종의 포인터로도 볼 수 있음
ㅇ 표준 입출력 장치용 객체
- 표준 입력 장치 객체 : sys.stdin 객체
- 표준 출력 장치 객체 : sys.stdout 객체
- 표준 오류 출력 장치 객체 : sys.stderr 객체
ㅇ 값의 수정 가능 여부에 따른 객체 구분
- 가변 객체 (Mutable)
. 例) 리스트(list), 딕셔너리(dict), 집합(set)
- 불변 객체 (Immutable)
. 例) 튜플(tuple), 문자열(str), 논리값형(bool), 정수형(int), 실수형(float)
3. 파이썬 클래스
ㅇ 클래스는, 비슷한 특성을 가진 객체들을 그룹화(패키지화)시키는 틀(문법) 임
ㅇ 클래스는, 저마다 고유한 속성 및 기능(메소드)가 있게됨
ㅇ 클래스는, 객체(인스턴스)를 생성함
- 例) obj = ClassName()
3. [참고사항]
ㅇ 생성자, 소멸자
- 클래스에 의한 객체 생성 시 자동으로 호출되는 메소드 : __init__
. 객체 생성 직후 자동 호출
. 초기화 담당
- 소멸자 : __del__
. 객체가 가비지 컬렉션될 때 호출
. 호출 시점은 보장되지 않음 → 따라서, 실무에서는 거의 사용
ㅇ 기타
- 어떤 클래스의 인스턴스인지 확인하기 : isinstance(인스턴스, 클래스)
- 클래스 명칭 확인하기 : x.__class__
- 객체를 함수처럼 호출 가능하게 만드는 메소드 : __call__
. 객체 + 함수의 성격을 동시에 가짐
class A:
def __call__(self, x):
return x * 2
a = A()
a(10) # 내부적으로 a.__call__(10) 실행 => 20
.. a(10) → 내부적으로 a.__call__(10) 실행
. 활용 例) 함수 객체, 콜백 객체, 상태를 가진 함수 (stateful function)