객체지향 프로그래밍 이란?
객체(Object) = 속성(Attribute) + 기능(Function)
클래스 만들기
class Name:
def __init__(self, v1, v2):
self.var1 = v1
self.var2 = v2
def function(self):
pass
객체 생성
var = Class(v1, v2)
객체 속성 변경
객체와 메모리
var2 = var1
import copy
var2 = copy.copy(var1)
list 깊은복사
### list 깊은복사1
lsCopy = []
for i in ls:
lsCopy.append(i)
### list 깊은복사2
lsCopy = ls.copy()
### list 깊은복사3
lsCopy = ls[:]
class ChildClass(ParentClass):
class ParentClass:
def __init__(self, var):
self.var = var
class ChildClass(ParentClass):
def __init__(self, var)
ParentClass.__init__(self, var)
self.var = var
class ParentClass:
def __init__(self, var):
self.var = var
class ChildClass(ParentClass):
def __init__(self, var)
super().__init__(var) # self를 안넣어도 됨.
self.var = var
class ChildClass(PClass1, PClass2, ... ):
실행문
class PClass:
def __init__(self, var1, var2)
self.var1 = var1
self.var2 = var2
def function(self):
실행문
class CClass(PClass):
def __init__(self, var1, var2):
super().__init__(var1, var2)
def function(self):
new 실행문
※ 오버라이딩시 상위 클래스의 메서드값을 반환받아 사용할 수 있음.하위 클래스의 메서드 구현을 강요
from abc import ABCMeta
from abc import abstractmethod
class MClass(metaclass=ABCMeta):
@abstractmethod
def function(self):
pass
try:
실행문
except:
예외 발생시 실행문
try:
실행문
except:
예외 발생시 실행문
else:
예외가 발생하지 않을시 실행문
※ else는 생략 가능하나, except는 생략 불가하다.try:
실행문
except:
실행문
finally:
실행문
try:
실행문
except Exception as e:
print(f'exception : {e}')
def divCalculator(n1, n2):
if n2 != 0:
print(f'{n1} / {n2} = {n1/n2}')
else:
raise Exception('0으로 나눌 수 없습니다.')
try :
실행문
except Eception as e:
print(e)
class NewException(Exception)
def __init(self ,n):
super().__init__({n})
def function():
if condition:
raise NewException()
try :
function()
except NewException as e:
print(e)