def 예외발생함수():
#예외발생
raise Exception("메소드 내에서 예외발생")
def 시작함수():
#예외 떠넘기기
try:
예외발생함수()
except: #Exception 생략
raise
# main 영역
try:
시작함수()
except Exception as e:
print(f"예외메세지 출력>\n{e}")
8장 연습문제 ---------------
2.
인스턴스 필드를 만드려면 초기화가 있어야 하고
초기화를 위해서는 생성자가 있어야 한다.
인스턴스 메소드만 인스턴스 필드에 접근 가능하다.
인스턴스 필드를 안 쓸 거면 클래스 메소드를 쓰면 된다.
인스턴스 필드는 반드시 인스턴스 메소드 안에서 선언해야 한다.
클래스의 인스턴스 필드 리스트에 다른 클래스의 인스턴스를 넣을 수 있다. 객체이므로
5. super() 쓸 수 있다.
인스턴스 내부만 가능
Employee.empCount += 1
에서 self.empcount 쓰지 않는 이유
아래는 인스턴스의 새로운 empcount 인스턴스 필드가 새로 생성되게 된다.
Employee.empCount는 기존에 클래스에 있는 클래스 필드 값이 변경되게 된다.
필기..!
파이썬은 덕타이핑으로 변수의 생성과 값을 대입하는 것이 같은 표기를 같는다.
따라서 어느 영역에서 변수를 선언했는지 주의깊게 봐야한다. 때에 따라 새로운 변수가 만들어질 수도 있고
기존 변수의 값이 달라질 수도 있다.
11장 연습문제 (상속, 다형성) ---------------
부모가 가진 모든 멤버를 상속받는다.(x)
-> 은닉된 멤버는 자동으로 상속이 안된다.
은닉성 있는 멤버가 없다면 모두 상속 받는다.
다중 상속 : 파이썬만 가능한 이유
다른 언어에서는 다중 상속 시에 모호성이 생길 수 있다. 이 모호성은 부모 클래스들이 같은 멤버 형식을 물려주게 될 때 나타난다.
파이썬은 이름에 가까운 클래스의 멤버를 더 우선순위로 상속받는다.
12장 연습문제 -------------
파일 입출력
텍스트 파일 저장할 때 str 문자형으로 꼭 입력할 것.
숫자로 데이터 입력이 되지 않는다.
pickle : dumble, load
입력에 대한 통로 두 번 여는 건 안됨
입력, 출력에 대한 통로는 각 한 번씩 여는 건 가능하지만 왠만하면 오류가 날 수 있으니 close() 로 닫자
in out 예외 처리 해주자
데이터를 쓴다 보다 읽는다에서 오류가 많이 발생한다. 쓴다는 존재하지 않으면 생성하지만 읽는다는 없으면 바로 오류가 발생한다.
즉 데이터를 받아낼 때 예외 처리 해주는 것이 좋다.
try:
#예외가 발생할 범위
except (예외클래스명 = Exception) as 임의의이름부여:
# 최소 하나는 존재해야 한다.
# 예외가 발생했을 때 실행
except (예외클래스명 = Exception) as 임의의이름부여:
# 여러 개의 except문 사용: 하단으로 갈수록 반드시 범위가 넓은 예외클래스명이 위치
else:
# 예외가 한번도 발생하지 않았을 때 실행
finally:
# 예외의 발생 여부와 상관없이 무조건 실행
class 예외클래스(Exception):
def __init__(self,예외메세지):
super().__init__(예외메세지)
raise Exception("예외메세지")
raise 예외클래스("예외메세지")
class 예외메세지용(Exception):
def __str__(self):
return "예외메세지"
raise 예외메세지용()
런타임 예외
컴파일 예외와 코드 예외 두 가지가 있다.
'Programming Language > Python' 카테고리의 다른 글
[파이썬] DAY9 계좌 알고리즘 문제 코드 리뷰 (0) | 2022.01.27 |
---|---|
[파이썬] DAY9 자료구조(기초개념, 리스트) (0) | 2022.01.26 |
[파이썬] DAY8 파일 입출력, 예외 처리 복습 문제 (0) | 2022.01.25 |
[파이썬] DAY8 자동차 문제 파일 입출력 + 예외처리 적용하기 (0) | 2022.01.25 |
[파이썬] DAY8 파일 입출력 & 예외 처리 복습 (0) | 2022.01.25 |