관리 메뉴

프론트엔드 정복하기

파이썬과 OOP(객체지향프로그래밍) 본문

패스트캠퍼스 - 자료구조와 알고리즘/파이썬 기초 문법

파이썬과 OOP(객체지향프로그래밍)

GROWNFRESH 2021. 8. 3. 08:07

객체 기본

class Dave:
	width = 0
    height = 0
    color = ''
    
square1 = Dave()
square2 = Dave()

square1.width = 10
square1.height = 5
square1.color = 'red'

square2.width = 7
square2.height = 7
square2.color = 'blue'

위에서 square1 = Dave() 구문처럼 변수에 class를 선언하는것이 객체를 인스턴스화하는 것이다.

그저 Dave() 로는 객체를 사용할 수 없다.

 

객체와 메소드

class Quadrangle:
	width = 0
    height = 0
    color = "black"
    
    def get_area(self):
    	return self.width * self.height
        
    def set_area(self, data1, data2):
    	self.width = data1
        self.height = data2
        
# 메소드 - 항상 첫번째 파라미터로 self 사용 (인자가 없을 때도 마찬가지)
# 클래스 내 attribute에 접근 시 -> self.attribute명


square = Quadrangle()
square.set_area(7,5)
print(square.width)    # 7

 

 

객체의 생성자, 소멸자

  • 생성자: __init__(self)
    • 객체 생성 시 자동 호출
  • 소멸자: __del__(self)
    • 객체 소멸 시 자동 호출

 

 

** 생성자에서 <해당 클래스가 다루는 데이터>를 정의하는 경우도 있음

class Quadrangle:
	def __init__(self, width, height, color):
    	self.width = width
        self.height = height
        self.color = color

 

 

객체 삭제 문법: del 객체명

class Quadrangle:
	def __init__(self, width, height, color):
    	...
        
    def __del__(self):
    	print("object is deleted")
        
        
square = Quadrangle(5, 5, "black")
del square    # object is deleted

 

'패스트캠퍼스 - 자료구조와 알고리즘 > 파이썬 기초 문법' 카테고리의 다른 글

파이썬 다양한 링크드 리스트  (0) 2021.08.18
링크드 리스트  (0) 2021.08.03
파이썬 스택  (0) 2021.07.30
파이썬 함수  (0) 2021.07.29
파이썬 집합  (0) 2021.07.27