앞서 포스트에서 python의 Class와 Object에 대해 예제를 통해 이해해 보았다. 해당 내용은 괄호 안에 링크를 통해 확인할 수 있다. (https://scribblinganything.tistory.com/203)
이번 장에서는 파이썬 클래스의 상속에 대해 알아보겠다.
Python Class 상속이란?
상속이란 말 그대로 물려 받는 다는 의미 이다. 다른 클래스의 특성을 물려 받는다고 간단하게 생각할 수 있다.
상속을 설명하기 위해 두가지 용어를 사용한다.
1. 추상화(abstraction)
2. 상속(inheritance)
추상화란 내가 만들 여러개의 Class에서 공통된 성질이 있다면 공통된 성질을 모아서 Class를 만드는 것을 추상화 작업이라고 한다. 상속이란 이렇게 추상화 작업을 통해 만든 Class의 특성을 필요에 따라 가져와서 사용하거나 일부는 변경해서 사용하는 것을 의미 한다.
예제를 통해 이해해 보기
아래 예제는 가족 멤버들의 수를 입력하면 그 값을 print 하는 코드이다.
코드>>
class family:
def __init__(self, father, mother, son, daughter):
self.fa = father
self.mo = mother
self.so = son
self.da = daughter
def how_many_fam(self):
print("We have ", self.fa+self.mo+self.so+self.da, " family members" )
class NoofSon(family):
def how_many_son(self):
print("We have ", self.so, " sons" )
class NoofDaughter(family):
def how_many_fam(self):
print("We have ", self.da, " daughters" )
A_family = NoofSon(1,1,3,2)
A_family.how_many_fam()
A_family.how_many_son()
print("##########")
B_family = NoofDaughter(1,1,3,2)
B_family.how_many_fam()
결과>>
We have 7 family members
We have 3 sons
##########
We have 2 daughters
주석>>
class family 에서 공통으로 사용할 특성들을 모았다. 이 과정이 추상화 과정이다.
A_family로 NoofSon 클래스를 사용한 객체를 만들고 how_many_fam을 통해 family 클래스의 함수를 사용함을 확인할 수 있다.
B_family는 NoofDaughter 클래스를 사용하여 객체를 만들었다. 그리고 how_many_fam에 덮어써서(overwirte) 해서 상속 받은 함수 값을 변경하였다.
이처럼 상속 받은 특성은 그냥 사용도되고 마음대로 변경도 가능하다.
'파이썬(Python) > 문법' 카테고리의 다른 글
파이썬 List 최대, 최소 값 차이 구하기 (feat. 파이썬 동작 시간 측정으로 가장 빠르게 구하는 방법은?) (0) | 2021.07.22 |
---|---|
파이썬 @staticmethod 란? (예제로 이해하기, 골뱅이마크 의미) (0) | 2021.07.01 |
파이썬 폴더위치에 따른 import 방법 (상위,하위,동일 폴더 위치)을 예제로 이해하기 (0) | 2021.05.22 |
파이썬 *args, **kwargs 의미와 예제를 통해 이해하기 (0) | 2021.04.24 |
파이썬에서 @(골뱅이, 데코레이터라고 불림)이란? 사용방법과 예제 (2) | 2021.04.22 |