[생활코딩] 파이썬 다중 상속 요약본


생활코딩 강의를 보고 파이썬의 다중 상속 요약하려 한다.

다중상속

다중상속의 형식

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




© 2018. by statssy

Powered by statssy