객체지향 프로그래밍(OOP)
class
class Airplane:
def __init__(self, type, company):
self.type = type
self.company = company
drf info(self):
print(f'항공사 : {self.company}, 기종 : {self.type}')
def doFlying(self):
print('Flying.....')
def doLanding(self):
pint('Landing....')
ap1 = Airplane('380', 'korean air')
ap1.info()
ap1.doFlying()
------------------------------------------------------------------
항공사 : korean air, 380
Flying.....
------------------------------------------------------------------
얕은 복사, 깊은 복사
- 얕은 복사 : 객체 주소를 복사하는 것으로
복사된 객체의 값을 변경 시 원본 객체의 데이터도 변경됨
- 깊은 복사 : 객체 자체를 복사하는 것으로 새로운 객체가 생성됨
arrNum = [10, 4, 6, 2, 5, 7]
copy1 = arrNum
copy2 = arrNum.copy()
print(arrNum)
copy1[1] = 8
print(arrNum)
print(copy1)
copy2[2] = 12
print(arrNum)
print(copy2)
------------------------------------------------------------------
[10, 4, 6, 2, 5, 7]
[10, 8, 6, 2, 5, 7]
[10, 8, 6, 2, 5, 7]
[10, 8, 6, 2, 5, 7]
[10, 4, 12, 2, 5, 7]
------------------------------------------------------------------
상속
- 자식 클래스는 부모 클래스의 기능을 사용 가능
class Parents():
def add(self, num1, num2):
return num1 + num2
def sub(self, num1, num2):
return num1 - num2
class Child(Parents):
def mul(self, num1, num2):
return num1 * num2
def div(self, num1, num2):
return num1 / num2
cal = Child()
print(f'sum : {cal.add(10, 20}')
print(f'mul : {cal.add(10, 20}')
------------------------------------------------------------------
30
200
------------------------------------------------------------------