프론트엔드 정복하기
파이썬과 OOP(객체지향프로그래밍) 본문
객체 기본
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 |