# 파이썬 클래스 모듈 예외처리

# 클래스

class MyClass(SuperClass):
  def __init__(self, ~) :
    ~
1
2
3
  1. class는 Java와 비슷함
  2. 특이한 점으로 self를 매개변수로 받아서 사용함. self -> 객체의 이름으로 사용됨
  3. class의 클래스 변수는 클래스에서 공통으로 이용됨.
  4. 객체마다 다른 점은 self를 활용하여 작성함.
  5. 생성자는 __init__을 활용해 생성함
  6. 상속은 클래스명 뒤에()에 넣어서 상속 받으면 됨

# 모듈

  1. 모듈은 ~.py와 같은 것을 의미함.
  2. import x로 x.py모듈을 불러와 사용할 수 있음.
  3. 'from 모듈명 import 모듈함수' 로 불러오면 모듈명.모듈함수를 굳이 안써도 됨.
  4. name == "main"의 의미는 모듈로 사용하지 않고 그냥 파이썬으로 실행한 경우를 의미
  5. package로 모듈을 불러올 경우 from 패키지 명 import * 시 __init__에 __all__에 가져올 모듈을 넣어주어야함.

# 예외처리

try :
  #작업 수행
except :
  #예외 발생 시 처리
else :
  #예외가 발생하지 않은 경우
finally :
  #예외 발생 여부 상관없이 처리
1
2
3
4
5
6
7
8
  1. try : 예외가 발생할 수 있는 작업처리
  2. except : 예외가 발생 시 들어가서 처리
  3. else : 예외가 발생하지 않은 경우 수행
  4. finally : 예외 여부 상관없이 마지막에 실행(주로 close()같은 일 수행)
try :
  #작업 수행
except 에러명1 :
  #예외1 발생 시 처리
except 에러명2 :
  #예외2 발생 시 처리
except (에러명3,에러명4) :
  #예외3,4 발생 시 처리
1
2
3
4
5
6
7
8
  1. 에러명을 입력하면 해당하는 에러에 대해서만 처리
  2. 여러가지 에러를 따로 처리할 수 있음
  3. 만약 동일한 에러를 처리해야하면 ()에 넣어서 동시 처리 가능
try :
  #작업 수행
except 에러명 as e:
  #에러 e로 처리 가능
1
2
3
4
  1. 에러에 대하여 알고 싶으면 as를 써서 받을 수 있음.
class MyError(Exception):
    def __str__(self):
      return "~"

class Bird:
    def fly(self):
      raise NotImplementedError
1
2
3
4
5
6
7
  1. 예외 만드는 방법은 Exception을 상속하여 쓰면 됨.
  2. 만약 에러에 대하여 str을 지정해주고 싶으면 __str__을 작성하면 됨.
  3. 에러를 일으키고 싶으면 raise를 사용하면 됨
  4. 에러를 일으키는 경우는 상속에서 구현 클래스가 오버라이드를 반드시 하라고 명시해야할 경우에 쓸 수 있음