파이썬(Python) - 다중 상속
파이썬(Python) - 다중 상속 알아보기
이번 포스팅에서는 다중상속에 대해 알아보겠습니다
관련글 :
Python(파이썬) - 객체(Object) - http://server-talk.tistory.com/210
Python(파이썬) - 객체제작 - http://server-talk.tistory.com/212
Python(파이썬) - Class(클레스)와 생성자 - http://server-talk.tistory.com/211
Python(파이썬) - 인스턴스 변수와 메서드 - http://server-talk.tistory.com/213
Python(파이썬) - 상속 - http://server-talk.tistory.com/214
Python(파이썬) - 클래스 메서드 - http://server-talk.tistory.com/216
Python(파이썬) - 객체와 변수 알아보기 - http://server-talk.tistory.com/217
파이썬(Python) - 다중상속 이란? |
기존 상속 포스팅에서 부모 클래스로부터 자식 클래스에게 상속하였던 부분이 있었습니다
위 그림처럼 다중 상속을 하게 되면 자식 클래스는 여러 부모 클래스로부터 상속받아 기능을 사용할 수 있게 됩니다.
파이썬(Python) - 다중상속 사용 해보기 |
다중 상속을 사용하기 위한 간단한 예제부터 살펴보겠습니다
class M1():
def m1_m(self):
print("m1_m")
class M2():
def m2_m(self):
print("m2_m")
class M3(M1, M2):
pass
c = M3()
c.m1_m()
c.m2_m()
위 코드는 다중 상속을 하기 위한 3개의 클래스(M1, M2, M3)를 만들었으며, M3의 클래스의 M1, M2의 클래스를 상소하였습니다
다중 상속의 사용방법은 클래스 옆 괄호 안에 상속하고자 할 클래스를 ,(콤마) 로 구분하여 넣어주시면 됩니다
다중상속 사용방법
calss 클래스명(상속할 클래스):
파이썬(Python) - 다중 상속 응용하기 |
class Calc(object):
_history = []
def __init__(self, num1, num2):
self.num1 = num1
self.num2 = num2
def sum(self):
result = self.num1 + self.num2
Calc._history.append("add : "+str(result))
return self.num1 + self.num2
def sub(self):
result = self.num1 - self.num2
Calc._history.append("sub : "+str(result))
return self.num1 - self.num2
@classmethod
def history(cls):
for item in Calc._history:
print(item)
class Ref(object):
def multi(self):
result = self.num1 * self.num2
Calc._history.append("multi : "+str(result))
return self.num1 * self.num2
class Calc_Ref(Calc, Ref):
def devide(self):
result = self.num1 / self.num2
Calc._history.append("devide : "+str(result))
return self.num1 / self.num2
C3 = Calc_Ref(20,10)
print(C3.sum())
print(C3.sub())
print(C3.multi())
print(C3.devide())
Calc.history()
위 코드는 Calc_Ref 클래스를 추가하였으며, Calc_Ref 클래스에 Calc와 Ref 클래스를 다중 상속한의 코드입니다 출력결과를 확인 하시면 Calc_Ref 클래스의 인스턴스가 있는 C3를 담은 C3의 메서드를 사용하여 출력이 잘된것을 확인 하실수 있습니다