오버라이딩이란?
> 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 다시 정의하는 것.
> 상속 후 메소드를 호출하게 되면 자식 클래스에서 다시 정의된 메소드를 사용.
( 이 경우, 부모 클래스에서 정의된 메소드는 사용 불가 )
class Person:
''' 부모 클래스 '''
def __init__(self, name):
self.name = name
def eat(self, food):
print(f'{self.name}가 {food}를 먹습니다')
class Student(Person):
''' 자식 클래스 '''
def __init__(self, name, school):
super().__init__(name)
self.school = school
def study(self):
print(f'{self.name}은 {self.school}에서 공부합니다')
def eat(self, food):
print(f'{self.name}가 {self.school}에서 {food}를 먹습니다')
예외 처리
> 예외(exception)란 프로그램에 존재하는 오류(Error)로 볼 수 있음.
> 예외 처리는 오류의 발생으로 프로그램이 비정상적으로 종료되는 것을 막고,
사용자에게 발생한 문제에 대한 정보를 전달하기 위함.
>> ( 예외 : 개발자가 직접 처리할 수 있는 간단한 문제 )
>> ( 오류 : 개발자가 처리하기 힘든 복잡한 오류 )
예외 종류 (예외 클래스)
> Python에서는 발생 가능한 문제를 예외 클래스로 만들어 둠.
> 기본적으로 예외 클래스는 " BaseException" 클래스(최상위 예외 클래스)의 자식 클래스
> Exception 클래스 또한 BaseException 클래스의 자식 클래스이며, 대부분의 예외 클래스는
이 Exception 클래스의 자식 클래스.
예외 클래스 | 의미 | |
1 | BaseException | 최상위 예외 클래스 |
2 | Exception | (대부분의) 예외 클래스의 부모 클래스 |
3 | ArithmeticError | 산술 연산 에러 |
4 | AttributeError | 속성 에러(잘못된 속성 참조) |
5 | EOFError | 런타임에러(읽어들일 데이터가 없을 경우) |
6 | ModuleNotFoundError | 모듈 설치 에러 (import할 모듈이 없을 경우) |
7 | FileNotFoundError | 파일 경로 에러 (파일이 존재하지 않을 경우) |
8 | IndexError | 인덱스 에러 (잘못된 인덱스 사용) |
9 | NameError | 변수 에러 (잘못된 변수 사용) |
10 | SyntaxError | 문법 에러 |
11 | TypeError | 타입 에러 (데이터 유형 에러) |
12 | ValueError | 데이터 값 에러 |
'[Python] 파이썬' 카테고리의 다른 글
[Python] 예외처리 방식_2 (0) | 2022.09.12 |
---|---|
[Python] 예외처리 방식 (0) | 2022.09.11 |
[Python] 파이썬 상속 (2) | 2022.09.09 |
[Python] 파이썬 클래스 구성_2 (0) | 2022.09.08 |
[Python] 파이썬 클래스 구성 (0) | 2022.09.07 |