부트캠프/PYTHON

Day 11-2. 클래스, 모듈

례지 2022. 9. 5. 19:09
728x90
  • 삼각형의 너비, 높이 값을 입력하면 면적을 구하는 클래스 작성

  • 문자열 다루기 클래스 생성

클래스 상속
  • 클래스 안에 변수와 함수를 생성 후 다른 클래스에서 미리 만들어 놓은 클래스를 물려받아 사용할 수 있는 것
  • 물려받아 사용함으로써 중복되는 코드를 줄일 수 있다는 장점이 있따.
  • 물려주는 클래스는 부모 클래스 또는 상위 클래스
  • 물려받는 클래스는 자식 클래스 또는 하위 클래스

Sample 함수에 Operation 함수 상속하기

  • Sample 클래스에 Operation 클래스를 상속받고 a,b 두 개의 데이터를 넣었을 때 a의 b 승을 계산해주는 메소드를 추가

메소드는 함수 이름

클래스 상속 후 메소드 오버라이딩
  • 아래와 같이 Operation 클래스의 div 메소드는 0으로 나누었을 때 에러가 발생

div를 오버라이딩 해서 만약 0으로 나누면 0으로 출력되게 만들고, 0이 아니면 나눈 결과가 출력되게 만든다.

  • 예제

- 초기값으로 name, age를 인스턴스 속성을 가진 Person 클래스를 생성 후 확인

- name, age를 print해서 보여주는 printInfo 메소드 추가

원래 __init__만 있던 Person 함수에 printInfo 메소드를 추가하였다.

- Student 클래스에 Person 클래스를 상속받고 확인

- (super 미사용) Student 클래스에 Person 클래스를 상속받으며 School, major 인스턴스 속성을 추가하고, printInfo 메소드에 school, major를 추가

다중 상속
  • 하나의 클래스가 두 개 이상의 클래스를 상속 받는 것

- Father, Mother, Child 세 개의 클래스를 생성합니다.
- 각 클래스는 클래스명을 출력해주는 생성자를 메소드로 가집니다.

- Child 클래스에 Father, Mother 클래스를 상속받고 실행

- super 사용, Child 클래스에 Father, Mother 클래스를 상속

python은 다중상속이 잘 안되기 때문에 __mro__를 통해서 메소드가 클래스에 속해 있는지 확인할 수 있다.

- Father은 getFather, Mother은 getMother, Child는 getChild의 메소드를 가집니다.
- get 메소드는 각각 gather,mother, child 인스턴스 변수를 반환

child로는 Father과 Mother 다 불러 올 수 있다.

모듈
  • 모듈이란 변수 ,함수, 클래스와 같은 여러가지 코드를 하나로 모아놓은 파일
  • 모듈은 한번 만들어 놓고 여러번 재사용할 수 있다.
  • 모듈은 사용자가 만들어 쓸 수도 있고, 이미 많은 개발자들이 만들어 놓은 모듈을 가져와서 사용할 수 도 있다.
728x90

'부트캠프 > PYTHON' 카테고리의 다른 글

Day 11-1. 객체와 클래스  (0) 2022.09.05
Day 10-2. 객체지향 프로그래밍(Class)  (0) 2022.09.03
Day 10-1. 파일 입출력  (0) 2022.09.03
Day9-2. 파일 입출력  (0) 2022.09.01
Day9-1. Python에서 파일 관리하기  (0) 2022.09.01