본문 바로가기
코리아 IT아카데미/python 인터넷 강의

ddazua | 28강 상속 예제, 예외 처리

by Sharon kim 2021. 10. 4.

day27>classTest.py

#p.283,292
#28강 상속 예제, 예외 처리

# %% inheritance test2
class Car:
    def __init__(self, brand, color, price):
        self.brand = brand
        self.color = color
        self.price = price

    def engineStart(self):
        print(self.brand+"열쇠로 시동 킴")

    def engineStop(self):
        print(self.brand+"열쇠로 시동 끔")

class SuperCar(Car):
    def __init__(self, brand, color, price, mode):
        super().__init__(brand, color, price)
        self.mode = mode

    #Overriding
    def engineStart(self):
        print(self.brand+"음성으로 시동 킴")

    def openRoof(self):
        print("지붕 열림")

    def closeRoof(self):
        print("지붕 닫힘")

ferrari = SuperCar("ferrari","red",35000,"daliy")

ferrari.engineStart()
ferrari.engineStop()
ferrari.openRoof()
ferrari.closeRoof()

# %% class variable

class A :
    seq = 0

    def __init__(self):
        A.seq += 1
        self.num = A.seq

    def test(self):
        self.seq = 10

obj1 = A()
obj2 = A()
obj3 = A()
obj4 = A()

obj1.test()
print(obj1.num)
print(obj1.seq)
print(obj2.num)
print(obj3.num)
#day28.txt
#예외 처리 
#        에러:심각한 오류
#        예외:덜 심각한 오류
#
#try :   
#       오류가 발생할 수 있는 문장
#except 오류 이름 as 객체 :      //as : alias 별칭
#        오류 발생 시 실행할 문장 
#
#모든 예외 클래스의 부모 클래스는 Exception이다.
#어떤 오류든지 상관없이 except로 처리할 때에는
#"오류이름" 자리에 예외의 최상위 부모인 exception을 작성한다.

# tryTest.py
# %% exception test
try:
    int(input("정수 입력: "))
except Exception as e:
    print("정수만 입력하세요")
print("반드시 실행되어야 할 문장")

try:
    print(10/0)
except ZeroDivisionError as e:
    # print(e.__str__)
    print("0으로 나눌 수 없습니다.")