1. 파이썬 객체
ㅇ 파이썬은, 모든 것이 객체 임
- 변수,클래스,함수,리스트,문자열 등 모두가 객체로 취급됨
2. 파이썬 객체 종류
ㅇ 변수 객체
- 변수에 값(리터럴)을 저장(대입)시에, 변수는 메모리를 할당 받지 않음
- 우선 값이 메모리를 할당 받아서 객체가 되며, 이 객체를 가리키는 것이 변수임
- 변수를 일종의 포인터로 볼 수 있음
ㅇ 표준 입출력 장치용 객체
- 표준 입력 장치 객체 : sys.stdin 객체
- 표준 출력 장치 객체 : sys.stdout 객체
- 표준 오류 출력 장치 객체 : sys.stderr 객체
ㅇ 값의 수정 가능 여부에 따른 객체 구분
- 가변 객체 (Mutable) : 例) 리스트, 딕셔너리, 집합
- 불변 객체 (Immutable) : 例) 튜플, 문자열, 논리값형(bool), 정수형(int), 실수형(float)
3. 파이썬 클래스
ㅇ 클래스는, 비슷한 특성을 가진 객체들을 그룹화(패키지화)시키는 틀(문법) 임
ㅇ 클래스는, 저마다 고유한 속성 및 기능(메소드)가 있게됨
ㅇ 클래스는, 객체(인스턴스)를 생성함
- 例) obj = ClassName()
3. 파이썬 메소드
ㅇ list 클래스의 메소드 ☞ 파이썬 리스트 메소드 참조
- append(),extend(),insert(),pop() 등
ㅇ 문자열 클래스의 메소드 ☞ 파이썬 문자열 메소드 참조
- (계산) : count(),min(),max(),len()
- (검색) : startswith(),endswith(),find(),rfind(),index(),rindex()
- (대/소문자)
. islower(),isupper(),
. lower(),upper() : 문자열의 알파벳을 소문자/대문자로 바꾸기
. swapcase(),istitle(),title(),capitalize()
- (숫자/문자)
. isalnum() : 문자열이 숫자 또는 문자이면 True 반환
. isalpha(),isdigit(),isnumeric()
- (엔코드/디코드) : encode(),decode()
- (space/strip)
. lstrip(),rstrip(),strip() : 문자열 왼쪽/오른쪽/양옆의 공백 제거하기
. isspace(),center()
- (split/join/fill)
. split(),splitlines(),replace(),join(),zfill(),ljust(),rjust()
ㅇ float 클래스의 메소드 : is_integer() 등
ㅇ date 클래스
ㅇ 생성자, 소멸자
- 클래스에 의한 객체 생성 시 자동으로 호출되는 메소드 : __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)