# 파이썬 클래스 모듈 예외처리
# 클래스
class MyClass(SuperClass):
def __init__(self, ~) :
~
1
2
3
2
3
- class는 Java와 비슷함
- 특이한 점으로 self를 매개변수로 받아서 사용함. self -> 객체의 이름으로 사용됨
- class의 클래스 변수는 클래스에서 공통으로 이용됨.
- 객체마다 다른 점은 self를 활용하여 작성함.
- 생성자는 __init__을 활용해 생성함
- 상속은 클래스명 뒤에()에 넣어서 상속 받으면 됨
# 모듈
- 모듈은 ~.py와 같은 것을 의미함.
- import x로 x.py모듈을 불러와 사용할 수 있음.
- 'from 모듈명 import 모듈함수' 로 불러오면 모듈명.모듈함수를 굳이 안써도 됨.
- name == "main"의 의미는 모듈로 사용하지 않고 그냥 파이썬으로 실행한 경우를 의미
- package로 모듈을 불러올 경우 from 패키지 명 import * 시 __init__에 __all__에 가져올 모듈을 넣어주어야함.
# 예외처리
try :
#작업 수행
except :
#예외 발생 시 처리
else :
#예외가 발생하지 않은 경우
finally :
#예외 발생 여부 상관없이 처리
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- try : 예외가 발생할 수 있는 작업처리
- except : 예외가 발생 시 들어가서 처리
- else : 예외가 발생하지 않은 경우 수행
- finally : 예외 여부 상관없이 마지막에 실행(주로 close()같은 일 수행)
try :
#작업 수행
except 에러명1 :
#예외1 발생 시 처리
except 에러명2 :
#예외2 발생 시 처리
except (에러명3,에러명4) :
#예외3,4 발생 시 처리
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 에러명을 입력하면 해당하는 에러에 대해서만 처리
- 여러가지 에러를 따로 처리할 수 있음
- 만약 동일한 에러를 처리해야하면 ()에 넣어서 동시 처리 가능
try :
#작업 수행
except 에러명 as e:
#에러 e로 처리 가능
1
2
3
4
2
3
4
- 에러에 대하여 알고 싶으면 as를 써서 받을 수 있음.
class MyError(Exception):
def __str__(self):
return "~"
class Bird:
def fly(self):
raise NotImplementedError
1
2
3
4
5
6
7
2
3
4
5
6
7
- 예외 만드는 방법은 Exception을 상속하여 쓰면 됨.
- 만약 에러에 대하여 str을 지정해주고 싶으면 __str__을 작성하면 됨.
- 에러를 일으키고 싶으면 raise를 사용하면 됨
- 에러를 일으키는 경우는 상속에서 구현 클래스가 오버라이드를 반드시 하라고 명시해야할 경우에 쓸 수 있음