본문 바로가기
개발일지/Python

파이썬 class 기초원리5 다중상속 (음.. 이건 난해하다)

by 다니엘의 개발 이야기 2022. 5. 20.
320x100
# 다중 상속

class Car01:

    def drive(self):
        print('drive method called')


class Car02:

    def turbo(self):
        print('turbo method called')


class Car03:

    def fly(self):
        print('fly method called')

class Car(Car01, Car02, Car03):
    def __init__(self):
        pass

boor = Car()
boor.drive()
boor.turbo()
boor.fly()

# 이쯤되면 궁금해지는게 있다.
# 왜 어떨땐 init을 쓰고 어떨땐 안쓰는가
# 초기화라는 개념이 구체적으로 어떤것이며 필요한가
# 뭔가가 이상해서 검색하다 말았다. 나중에 알아보자

 

class BasicCalculator:

    def add(self, n1, n2):
        return n1 + n2

    def sub(self, n1, n2):
        return n1 - n2

    def mul(self, n1, n2):
        return n1 * n2

    def div(self, n1, n2):
        return n1 / n2

class DeveloperCalculator:
    def mod(self, n1, n2):
        return n1 % n2

    def flo(self, n1, n2):
        return n1 // n2

    def exp(self, n1, n2):
        return n1 ** n2


class NewCalculator(BasicCalculator, DeveloperCalculator):
    def __init__(self):
        pass

# .....  이쯤되면 혼란스럽다. 어떤건 상속할때 super()가 필요하고 어떤건 필요가 없고
# 어떤건 init이 필요하고 어떤건 필요없고

cal = NewCalculator()

print(cal.add(10,20))
print(cal.sub(10,20))
print(cal.mul(10,20))
print(cal.div(10,20))
print(cal.flo(10,20))
print(cal.exp(10,20))
print(cal.mod(10,20))
300x250