## 파이썬 클래스
## 파이썬 예외처리
## 파이썬 클래스
무엇인가를 반복적으로 만들어낼 수 있는 ‘틀’
클래스(틀) 를 통해서 만들어진 것을 객체(object) 라고 한다.
하나의 클래스를 가지고 여러 개의 객체를 만들 수 있습니다.
만들어진 객체들은 서로 아무런 영향을 주지 않습니다.
예를 들면 "와플틀"이 클래스(class) 라면, 만들어진 크로와상와플은 객체(object) 인 것이다.
> 클래스 요소
* 클래스 멤버 : 클래스에서 변수와 같은 역할
* 클래스 메소드 : 클래스에서 함수와 같은 역할
class MyClass:
var = '클래스 멤버'
def func(self):
print('클래스 메소드')
파이썬에서 클래스 메소드의 인자로 관습적으로 self를 사용
객체 생성은 obj = MyClass()로 선언한다.
클래스 멤버 : 객체간 서로 공유되는 변수
인스턴스 멤버 : 객체별로 고유한 값을 저장하는 변수
class Waffle:
taste = '굳' # 클래스멤버
size = '보통' #클래스멤버
def seller(self, order):
self.order = order #인스턴스멤버
인스턴스 멤버는 self.멤버이름을 통해 선언할 수 있다.
특정 객체의 멤버여서 self.멤버이름의 형식으로 선언
class Car():
def set_owner(self, name):
self.owner = name
print('차 주인: ', name)
# 클래스 생성자
클래스 생성자 는 객체가 생성될 때마다 자동으로 실행되는 클래스 메소드
일반적으로 생성자는 클래스 변수를 설정해주는 등의 초기화 작업을 수행
생성자는 self 외에 여러개의 인자를 가질 수 있다.
def __init__(self, test1, test2):
# 여기에 생성자에서 처리하고자 하는 내용
#클래스 소멸자
클래스 소멸자 는 객체가 메모리에서 제거될 때 자동으로 실행되는 메소드
class Person:
(생략)
def __del__(self):
# 여기에 소멸자에서 처리하고자 하는 내용
객체를 메모리에서 제거하려면 아래와 같이 입력
# 클래스 Person의 객체를 만들어 person에 저장
person = Person()
# 객체 person을 제거 합니다.
del person
>> 생성자나 소멸자와 같이 앞뒤에 ‘__’ 가 붙는 경우, 특별한 용도로 미리 예약한 메소드명이라고 생각
#클래스 상속
상속 은 하나의 클래스가 다른 클래스의 멤버와 메소드를 그대로 물려받아 사용할 수 있는 개념
상속을 받는 클래스를 자식클래스, 상속을 하는 클래스를 부모클래스라 정의
자식클래스는 서브클래스, 부모클래스는 슈퍼클래스라고도 한다.
상속 방법 : class Subclass(SuperClass):
자식클래스는 여러 개의 부모클래스로부터 상속받을 수 있다
만약 자식클래스와 부모클래스의 멤버 또는 메소드가 중복된다면, 자식클래스의 요소를 우선시 한다.
## 파이썬 예외처리
프로그램이 실행되는 동안 에러가 발생하면 프로그램이 중단되는데 이를 예외 상황이라고 한다.
> try~except를 사용하면 예외 상황이 발생하더라도 예외 상황에 대한 적절한 코드를 실행하고, 프로그램을 계속 진행할 수 있다.
> try에 해당하는 블럭에 에러가 발생할 가능성이 큰 부분을 두고, 예외가 발생할 경우, except에 해당하는 코드 블럭이 실행
오류 상황이 아닐 경우 특정 작업을 수행하는 코드를 작성하고 싶을 경우에는 try~except문에 else를 붙여주면 된다.
ex)
try:
print('try문 입니다..')
except:
print('except가 발생했습니다!')
else:
print('예외가 발생하지 않고 else문 입니다.')
> 오류 발생 유무와 상관 없이 특정 코드를 무조건 실행하고 싶을 경우 fianlly사용
try:
print('try문 입니다..')
except:
print('except가 발생했습니다!')
finally:
print('무조건 실행문 finally입니다.')
> try~except문에서 파이썬에서 미리 정해놓은 예약어 Exception을 사용할 경우 오류가 발생한 원인을 출력가능
try:
print(param)
except Exception as e:
print(e)
댓글