[생활코딩] 파이썬 다중 상속 요약본
in Development on Python
생활코딩 강의를 보고 파이썬의 다중 상속 요약하려 한다.
다중상속
다중상속의 형식
class C1():
def c1_m(self):
print("c1_m")
class C2():
def c2_m(self):
print("c2_m")
class C3(C1, C2):
pass
c = C3()
c.c1_m()
c.c2_m()
c1_m
c2_m
다중상속의 단점
- 만약에 다중 상속하는데 메소드가 같은 이름이라면 상속의 앞쪽에 있는 클래스가 우선순위이다. (코드하기에 위험하다)
- 만약에 자식 클래스에도 같은 이름의 메소드가 있으면 자식 클래스가 우선. (코드하기에 위험)
class C1():
def c1_m(self):
print("c1_m")
def m(self):
print("C1 m")
class C2():
def c2_m(self):
print("c2_m")
def m(self):
print("C2 m")
class C3(C1, C2):
def m(self):
print("C3 m")
c = C3()
c.c1_m()
c.c2_m()
c.m()
print(C3.__mro__)
c1_m
c2_m
C3 m
(<class '__main__.C3'>, <class '__main__.C1'>, <class '__main__.C2'>, <class 'object'>)
참고 : 생활코딩-Python&Ruby