45. 파이썬 – 클래스의 상속

  • 카카오톡 공유하기
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 스레드 공유하기

이전 포스팅까지 파이썬 클래스를 이용한 사칙연산 클래스를 생성해 봤습니다.
이번에는 클래스의 상속이라는 개념을 적용하여 기존에 만든 사칙연산 클래스에 기능을 추가해 제곱을 계산하는 클래스를 만들어 보도록 하겠습니다.

👇 파이썬 클래스의 상세 내용 확인하기 👇

파이썬 클래스의 자세히 알아보기
파이썬 클래스의 관련 글 더보기

파이썬 클래스

사칙연산 클래스의 상속

클래스의 상속에서 상속(Inheritance)의 의미는 물려받다 라는 의미 입니다.
재산 상속 할 때의 상속과 같은 의미입니다.
클래스에서도 이 상속이라는 개념이 있습니다.
클래스를 만들고 다른 어떤 클래스의 기능을 물려 받을 수 있게 만드는 것이 바로 클래스의 상속입니다.

이제 기존에 만든 Four_Calculator 클래스에 클래스의 상속이라는 개념을 적용하여 a 와 b 의 제곱을 구하는 기능을 추가해 보도록 하겠습니다.

다음처럼 Four_Calculator 클래스를 상속하는 More_Four_Calculator 클래스를 만들어 보겠습니다.

Python
>>> class More_Four_Calculator(Four_Calculator):
...     pass
...
>>>

위 코드 처럼 클래스를 상속하려면 클래스 이름 뒤 괄호 속에 상속할 클래스 이름을 넣어주면 됩니다.

class 클래스 이름(상속할 클래스 이름)

More_Four_Calculator 클래스는 Four_Calculator 클래스를 상속했으므로 Four_Calculator 클래스의 모든 기능을 사용할 수 있습니다.

Python
>>> a = More_Four_Calculator(4, 2)
>>> a.add()
6
>>> a.multi()
8
>>> a.subtrack()
2
>>> a.divide()
2.0
>>>

위처럼 상속받은 Four_Calculator 클래스의 모든 기능을 사용할 수 있음을 확인 할 수 있습니다.

클래스의 상속을 하는 이유

그럼 클래스의 상속을 하는 이유는 무엇일까요?
클래스의 상속은 보통 기존 클래스를 변경하지 않고 기능을 추가하거나
기존에 있던 기능을 변경하고자 할 때 주로 사용됩니다.

그럼 기존 클래스에 기능을 추가하고자 한다면 기존 클래스를 수정을 하면 되는데
왜 상속을 받아서 처리를 할까요?
만약 기존 클래스가 라이브러리 형태로 제공되거나 수정이 허용되지 않는 상황이라면
클래스의 상속을 통해서 이를 해결할 수가 있습니다.

제곱을 계산하는 클래스 More_Four_Calculator 만들기

이제 a 와 b 의 제곱을 계산하는 클래스 More_Four_Calculator 를 생성해 보겠습니다.

Python
>>> class More_Four_Calculator(Four_Calculator):
...     def squared(self):
...         result = self.first ** self.second
...         return result
...
>>>

앞서 작성했던 제곱을 계산하는 클래스 More_Four_Calculator 의 pass 문장을 제거하고 입력받은 두 수의 제곱을 구할 수 있는 squared 라는 메서드를 추가해 봤습니다.
이제 squared 메서드를 실행해 보겠습니다

Python
>>> a = More_Four_Calculator(4, 2)
>>> a.squared()
16
>>> a.add()
6

제곱을 계산하는 클래스 More_Four_Calculator 로 만든 a 객체에 4 와 2 라는 숫자를 입력한 후 squared 메서드를 호출했습니다.
결과는 숫자 4 의 2 제곱 인 16 을 리턴하는 것을 확인 할 수 있습니다.
add 라는 메서드 역시 상속받은 대로 정상 동작하는 것을 확인 할 수 있습니다.

클래스의 상속은 제곱을 계산하는 클래스 More_Four_Calculator 처럼 기존에 있는 클래스(Four_Calculator) 는 그대로 유지한 채로 클래스의 기능을 확장 시킬 때 주로 사용하게 됩니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
45. 파이썬 - 클래스의 상속
파이썬 클래스의 핵심 정보 바로가기