객체의 시작과 끝, 행동을 정의하는 방법
파이썬에서 클래스는 객체를 만드는 설계도입니다.
이번 수업에서는 클래스의 구성 요소인 생성자
, 소멸자
, 메서드
에 대해 알아보겠습니다.
객체의 시작을 정의하는 생성자
생성자(Constructor)
는 객체가 만들어질 때 자동으로 호출되는 메서드입니다.
파이썬에서 생성자는 __init__
으로 정의하며, 객체가 생성될 때 필요한 초기값을 설정합니다.
생성자 정의
class Car:
# 생성자 정의
def __init__(self, brand, model, year):
# 객체의 속성 설정
self.brand = brand
self.model = model
self.year = year
print(f"{self.brand} {self.model} 생성")
# 브랜드 'Lamboo', 모델 'Avent', 연식으로 2021인 자동차 객체 생성
lambo = Car("Lamboo", "Avent", 2021)
# 출력: Lambo Avent 생성
# 브랜드 'Tesli', 모델 'Model Z', 연식으로 2023인 자동차 객체 생성
tesla = Car("Tesli", "Model Z", 2023)
# 출력: Tesli Model Z 생성
__init__
코드를 통해 Car
객체가 생성될 때마다 자동차의 브랜드, 모델, 연도가 설정되며, 브랜드와 모델이 출력됩니다.
객체의 끝을 정의하는 소멸자
소멸자(Destructor)
는 객체가 소멸될 때 호출됩니다.
파이썬에서는 __del__
로 정의하며, 주로 객체가 삭제될 때 정리하는 작업을 수행합니다.
소멸자 정의
class Car:
# 소멸자 정의
def __del__(self):
# 객체가 소멸될 때 출력
print(f"{self.brand} {self.model}가 소멸됨")
객체의 행동을 정의하는 메서드
메서드(Method)
는 객체가 수행할 행동을 정의합니다.
주로 객체의 상태를 변경하거나 특정 기능을 수행합니다.
메서드 정의
class Car:
def __init__(self, brand, model, year):
self.brand = brand
self.model = model
self.year = year
def start_engine(self):
print(f"{self.brand} {self.model}의 엔진 시동")
def change_year(self, year):
self.year = year
print(f"{self.brand} {self.model}의 연식을 {year}로 변경")
# 브랜드 'Lamboo', 모델 'Avent', 연식으로 2021인 자동차 객체 생성
lambo = Car("Lamboo", "Avent", 2021)
# 출력: Lamboo Avent의 엔진 시동
lambo.start_engine()
# 출력: Lamboo Avent의 연식을 2023으로 변경
lambo.change_year(2023)
위 코드에서 start_engine
메서드는 자동차의 엔진을 켜는 기능을 표현하며, change_year
메서드는 자동차의 연식을 변경합니다.
메서드를 정의할 때 포함되는 self
는 해당 메서드를 호출한 객체 자신을 가리키며, 메서드를 정의할 때 반드시 포함되어야 합니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!