🔍 클래스 상속
- 클래스는 또 다른 클래스를 상속해서 내 것처럼 사용 가능
Class NormalCar:
Class TurboCar(NormalCar): → NormalCar 상속
1. 생성자
- 객체가 생성될 때 생성자를 호출하면 __init__() 메소드를 자동 호출
- __init__()는 속성을 초기화한다.
Class Calculator:
def __init__(self, n1, n2): → __init__ 메소드 호출
self.num1 = n1 → 객체의 속성값을 매개변수 10,
self.num2 = n2 20 으로 초기화
cal = Calculator(10, 20) → Calculator() 생성자 호출 후,
레퍼런스 변수에 넣어준다.
Class Calculator:
def __init__(self): → 매개변수를 받지 않고 항상 같은 값으로 초기화
self.num1 = 100
self.num2 = 200
cal = Calculator()
- 상속 후 상위 클래스의 기능은 바로 사용 가능하나, 속성은 __init__ 메소드가 호출되어야 한다.
- 상위 클래스의 속성을 초기화하려면, 직접 상위 클래스의 __init__을 강제호출하거나 super()를 사용
Class P_Calculator:
def __init__(self, p1, p2):
self.pNum1 = p1
self.pNum2 = p2
Class P_Calculator:
def __init__(self, p1, p2):
self.pNum1 = p1
self.pNum2 = p2
Class C_Calculator(P_Calculator): → P_Calculator 상속
def __init__(self, n1, n2):
super().__init__(c1, c2): → 상위 클래스 P_Calculator 초기화(self 안 넣어도 됨)
self.cNum1 = c1 또는 P_Calulator.__init__(self, c1, c2): 로 강제 초기화
self.cNum2 = c2
cal = C_Calculator(10, 20)
2. self 와 __init__
1) self
- 객체의 인스턴스 그 자체, 자기 자신을 참조하는 매개변수
- 파이썬 메서드의 첫번째 인자로 항상 인스턴스가 전달됨
- 클래스의 구성을 취득할 시 필요한 정형의 구문
2) __init__
- 컨스트럭터라고 불리는 초기화를 위한 함수(메소드)
- 인스턴스화를 실시할 때 반드시 처음에 호출되는 특수한 함수
- 오브젝트 생성(인스턴스를 생성)과 관련하여 데이터의 초기를 실시하는 함수
- 클래스 구성에서 정보를 유지하기 위한 중요한 구성
Class Car:
def __init__(self, name, year, height, weight):
self.name = name
self.year = year
self.height = height
self.weight = weight
3. 다중 상속
- 2개 이상의 클래스 상속
Class Car01:
def drive(self):
Class Car02:
def stop(self):
Class Car02:
def park(self):
Class Car(Car01, Car02, Car03):
def __init__(self):
pass
tip) 너무 많이 쓰면 안됨. 꼭 필요한 경우에만 사용
'Python > Python 기초' 카테고리의 다른 글
[파이썬 기초] 추상클래스, 예외 (0) | 2022.04.28 |
---|---|
[파이썬 기초] 오버라이딩 (0) | 2022.04.28 |
[파이썬 기초] 객체지향 프로그래밍 (0) | 2022.04.28 |
[파이썬 기초] 패키지 (0) | 2022.04.28 |
[파이썬 기초] 모듈이란? (0) | 2022.04.27 |