728x90
반응형
# 파이썬 다중상속
# 예제1
# 상속 기본
# 슈퍼클래스(부모) 및 서브클래스(자식) -> 모든 속성, 메소드 사용 가능
# 상속을 통해 코드의 생산성, 가독성, 재사용성 

class Ramen:
    """Parent Class"""
    def __init__(self, comp, value):
        self.comp = comp
        self.value = value
        
    def show(self):
        return 'Ramen class "Show Method!"'
    

class Ottogi(Ramen):
    """Sub Class"""
    def __init__(self, name, comp, value):
        super().__init__(comp,value)
        self.name = name

    def show_model(self) -> None: # Return 없다는 표시
        return "Your Ramen Name :  %s" %self.name
    
class Nongshim(Ramen):
    """Sub Class"""
    def __init__(self, name, comp, value):
        super().__init__(comp,value)
        self.name = name

    def show_model(self) -> None: # Return 없다는 표시
        return "Your Ramen Name :  %s" %self.name
    
    def show(self): # 부모한테도 있는 메소드 
        return 'Ramen Info : %s %s %s' %(self.name, self.comp, self.value)
# 일반 사용

model1 = Ottogi('진라면','Ottogi','soup')
print(model1.comp) # super
print(model1.value) # super
print(model1.name) # sub
print(model1.show()) # super
print(model1.show_model()) #sub
print(model1.__dict__) 

print('-'*50)
# 메소드 오버라이딩 

model2 = Nongshim('신라면','Nongshim','soup')
print("메소드 오버라이딩 예 : ", model2.show()) # 부모에서도 존재하지만 자식(서브)클래스에서 다시 메소드 선언을 해서 사용 # 오버라이딩
print(model2.comp)
print(model2.name)
print(model2.value)
print(model1.__dict__)

[그림1] 다중상속 예제 결과

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기