deftry_func(x, idx): try: return100/x[idx] except ZeroDivisionError: print("did't divide zero") except IndexError: print("not in range of Index") except TypeError: print("there is type Error") except NameError: print("it is not definated parameter") finally: print("무조건 실행됨")
defmain(): a = [50, 60, 0, 70] print(try_func(a,1))
# Zero Division Error print(try_func(a,0))
# Index Error print(try_func(a,5))
# type Error print(try_func(a, "hi"))
if __name__ == "__main__": main()
어떻게던 프로그램이 돌아 갈 수 있도록 만들어 주는 것이 중요하다.
class 정리
__init__ : set_name, set_id 해 주지 않고, 통합시켜주는 역할
__eq__, __ne__ : 부등호 연산자
상속, 다형성(서로다른 클래스에서 공통으로 쓰는 함수)
Exception
class attribute / instance attribute / instance method 차이
def__init__(self, name, salary = 30000): self.name = name if salary< Employee.MIN_SALARY: raise SalaryExcept("급여가 너무 낮아요!") self.salary = salary
defgive_bonus(self, amount): if amount > Employee.MAX_Bonus: print("보너스가 너무 많아 ") elif self.salary + amount < Employee.MIN_SALARY : print("보너스 지급 후의 급여도 매우 낮다. ") else: self.salary += amount
if __name__ == "__main__": emp = Employee("YH", salary= 10000)