
Class
Object
- 어떤 Data type의 Instance
- 어떤 Data type의 값이나 메모리 주소
- Class의 하나의 실질적인 예시
- 어떤 Class의 소유로 만들어낸 예제
- isinstance(instance, data_type): instance가 data_type의 instance가 맞는지 알려 주는 함수
Class
- Data type
- int, float, str 모두 Class
- 직접 정의해서 사용할 수 있음
- 변수들이 어떤 형식을 갖는지 정의해 두는 틀
Method
- method는 class 안에 정의된 함수 (member function)
- member function의 첫 번째 parameter는 무조건 self
- 어떤 class method의 첫 parameter는 항상 해당 class의 객체
- 외부에서 method를 접근할 때는 class_variable.method() 로 접근
Inheritance
- base class: 상위 클래스, 부모 클래스
- derived class: 하위 클래스, 자식 클래스
- 하위 클래스는 부모 클래스를 상속받음
- 하위 클래스가 부모 클래스를 상속받은 경우 부모 클래스의 변수, method 모두 사용 가능
- 모든 class는 objet class의 하위 클래스
- class dereived_class (base_class): 로 상속 표기
Inheritance Method
__init__
- 생성자 method
- 생성자를 따로 언급하지 않으면 자동으로 상위 클래스인 object의 생성자 사용
- 다른 값으로 멤버 변수를 초기화하고 싶을 때는 redefine해서 사용
- 생성자에 self 이외에 다른 parameter를 넣는 순간 override
__str__
- print를 위한 함수
- override로 구현하지 않으면 상위 클래스의 str 함수 사용
__eq__
- 비교 연산자를 위한 함수
- 상위 클래스 object의 eq: 클래스의 모든 멤버 변수가 똑같아야 True
- 일부분만 같아도 True 값을 반환하도록 override 가능
Override vs Overload
Override
- 상속받은 method를 자식 class에서 새로 수저애서 사용
- redefine한 경우 상속받은 원래 method 사용 불가능
Overloading
- 상속과 무관한 기능
- parameter 조합만 다르다면 이름이 같은 여러 메소드를 만들 수 있게 하는 기능