본문으로 건너뛰기
실습하기

객체의 시작과 끝, 행동을 정의하는 방법

파이썬에서 클래스는 객체를 만드는 설계도입니다.

이번 수업에서는 클래스의 구성 요소인 생성자, 소멸자, 메서드에 대해 알아보겠습니다.


객체의 시작을 정의하는 생성자

생성자(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 강의를 등록해 주세요!