반응형
상속(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("풀을 찾았습니다.")
반응형
'AI > python' 카테고리의 다른 글
파이썬 기초 12) datetime, date 모듈 timedelta 클래스 (0) | 2021.01.10 |
---|---|
파이썬 기초 11) Comprehension (0) | 2021.01.10 |
파이썬 기초 9) 메소드, __init__, __str__ (0) | 2021.01.10 |
파이썬 기초 8) 자료형, 클래스와 인스턴스 (0) | 2021.01.10 |
파이썬 기초 7) 슬라이스 (0) | 2021.01.10 |