[제로베이스_데이터 취업 스쿨 16기] 파이썬 중급 (2)

김세훈·2023년 6월 13일
post-thumbnail

객체지향 프로그래밍(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
------------------------------------------------------------------
profile
KimSe's 주절주절

0개의 댓글