파이썬 중급4 - 클래스(2)

Jasmine·2023년 3월 22일
0

파이썬 중급

목록 보기
4/12

클래스 상속

  • 클래스는 또 다른 클래스를 상속해서 내 것처럼 사용할 수 있다.
    super class - child class

  • 클래스 상속(실습)
class TurboCar(NormalCar):

: 상속할 부모클래스의 이름을 괄호 안에 넣어주면 된다!

📋실습 : 덧셈, 뺄셈 기능이 있는 클래스를 만들고, 이를 상속하는 클래스를 만들어서
곱셈과 나눗셈 기능을 추가해 보자


생성자

  • 객체가 생성될 때 생성자를 호출하면 init()가 자동 호출된다.

init()와 객체속성

  • init()가 속성을 초기화 한다.

self.num1과 self.num2 속성에 매개변수 n1, n2로 초기화해서 10, 20을 넣는다.
매개변수 없이 애초에 self.num1 = 10, self.num2 = 20 처럼 고정값을 넣어도 됨.
여튼 init() 함수가 속성의 값을 초기화하는 역할을 한다는 의미.


super()

  • 상위 클래스의 속성을 초기화하기 위해서 super()를 이용한다.⏳⏳

cls = C_Class(10, 20) 했을 때,
C_Class는 호출되지만 P_Class는 속성이 초기화가 안돼서 호출이 안됨.
상위 클래스인 P_Class의 속성(pNum1, pNum2)을 초기화시켜주는 작업이 필요하다.

  • 두 줄이 같은 역할임. super()가 더 세련된 방법.

📋실습 : 중간고사 클래스와 기말고사 클래스를 상속관계로 만들고 각각의 점수를 초기화하자.
또한 총점 및 평균을 반환하는 기능도 만들어보자⏳⏳


다중 상속

: 2개 이상의 클래스를 상속한다.

Car에 Car01, Car02, Car03을 모두 상속함.
(그 안의 함수(기능)을 사용해보면 상속되었는지 확인 가능)

📋실습 : BasicCalculator와 DeveloperCalculator 클래스를 다음과 같이 만들고
이들 클래스를 상속해서 Calculator 클래스를 만들고 사용해 보자


오버라이딩

: 하위 클래스에서 상위 클래스의 메서드를 재정의(override)한다

: 클래스는 상속, 메서드는 오버라이딩
: 총알발사가 아니라 레이저발사로 바뀜! (fire 메소드를 재정의)

📋실습 : 삼각형 넓이를 계산하는 클래스를 만들고 이를 상속하는 클래스에서 getArea()를
오버라이딩 해서 출력 결과가 다음과 같을 수 있도록 클래스를 만들어보자

super().__init( , )을 함으로써 받은 변수를 상위클래스로 올려줌


추상클래스

: 상위 클래스에서 하위 클래스에 메서드 구현을 강요한다.

선언만 한(오버라이딩도 아님, 아예 실행부가 없음) 메소드를, 하위 클래스에서 구현.
구현하지 않으면 에러가 남. 그래서 구현을 '강요'.

  • 추상클래스 거는 방법
from abc import ABCMeta					#abc 패키지에서 모듈을 가져와야함
from abc import abstractmethod

class 상위클래스(metaclass=ABCMeta):		#metaclass=ABCMeta 넣기

	@abstractedmethod					#데코레이션 붙이기

📋실습 : 계산기 추상 클래스를 만들고 이를 이용해서 새로운 계산기 클래스를 만들어 보자.
추상 클래스에는 덧셈, 뺄셈, 곱셈, 나눗셈 기능이 선언되어 있어야 한다.

.
.
.

🔥제로베이스 데이터 사이언스 취업스쿨 13기🔥

profile
데이터직무를 위한 공부 기록

0개의 댓글