반응형

 

 

 

 

상속(Inheritance)

  • 상속하는 클래스를 부모 클래스
  • 상속받는 클래스를 자식 클래스
  • 자식 클래스가 부모 클래스의 내용을 가져다 쓸 수 있는 것

 

class Animal( ):
    def walk( self ):
        print( "걷는다" )

    def eat( self ):
        print( "먹는다" )

class Human( Animal ):
    def wave( self ):
        print( "손을 흔든다" )

class Dog( Animal ):
    def wag( self ):
        print( "꼬리를 흔든다" )

 

 

궁금한 점 !

두 개 이상의 클래스를 상속받을 수는 없나요?

# 다중 상속
class Person():
    def walk(self):
        print("걷는다")
    def eat(self):
        print("먹는다")

class Student():
    def study(self):
        print("공부한다")

class Me(Person, Student):
    def grow(self):
        print("자란다")

 

이렇게 두 개의 클래스를 작성하면 된다.

 

 

 

 

 

단순 오버라이드

오버라이드(Override)

  • 같은 이름을 가진 메소드를 덮어 쓴다는 의미
class Animal( ):
    def greet( self ):
        print( "인사한다" )

class Human( Animal ):
    def greet( self ):
        print( "손을 흔든다" )

class Dog( Animal ):
    def greet( self ):
        print( "꼬리를 흔든다" )

 

예시 )

class Car():
    
    def run(self):
        print("차가 달립니다.")


class Truck(Car):
    
    def load(self):
        print("짐을 실었습니다.")
    # 이 아래에서 run 메소드를 오버라이드 하세요.
    def run(self):
        print("트럭이 달립니다.")
    
truck = Truck()
truck.run()
트럭이 달립니다.

 

 

 

 

super()

  • 자식클래스에서 부모클래스의 내용을 사용하고 싶은 경우
  • super().부모클래스내용
class Animal( ):
    def __init__( self, name ):
        self.name = name

class Human( Animal ):
    def __init__( self, name, hand ):
        super().__init__( name ) # 부모클래스의 __init__ 메소드 호출
        self.hand = hand

person = Human( "사람", "오른손" )

 

 

 

 

 

내 예외 만들기

예외 정의

  • 사용자가 직접 예외처리를 하면 코드의 직관성을 높일 수 있다.
  • 파일을 하나 만들어 예외를 정의
  • Exception 클래스를 상속받아 만든다

 

# 이 아래에 Exception을 상속 받는 MyException클래스를 정의하세요.
class MyException(Exception):
    """아무꺼나"""
    
    
shops = {
    "송일문방구": {"가위": 500, "크레파스": 3000},
    "알파문구": {"풀": 800, "도화지": 300, "A4용지": 8000},
    "다이소": {"풀": 500, "목공본드": 2000, "화분": 3000}
}


try:
    for shop, products in shops.items():
        for product, price in products.items():
            if product == '풀':
                print("{}: {}원".format(shop, price))
                raise MyException
except MyException:
    print("풀을 찾았습니다.")

 

 

 

 

 

 

 

 

반응형

+ Recent posts