본문 바로가기

Programming/python

python의 __init__에 대해서 알아봅시다.

`__init__`은 파이썬에서 특별한 메서드로, 초기화 메서드 또는 생성자(constructor)라고도 불립니다. 

클래스를 정의할 때 `__init__` 메서드를 정의하면 해당 클래스의 객체가 생성될 때 자동으로 호출되는 특성을 가지고 있습니다.

`__init__` 메서드는 객체가 생성될 때 초기화 작업을 수행하는 역할을 합니다.

 객체가 생성되면 클래스의 `__init__` 메서드를 호출하여 해당 객체의 속성을 초기화할 수 있습니다. 

이러한 속성 초기화는 객체가 생성될 때마다 자동으로 수행되므로, 객체를 사용하기 전에 필요한 속성들을 설정하는데 유용합니다.

예시를 통해 `__init__` 메서드를 설명하겠습니다:

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.mileage = 0

    def drive(self, miles):
        self.mileage += miles

    def display_info(self):
        print(f"제조사: {self.make}, 모델: {self.model}, 연식: {self.year}, 주행거리: {self.mileage}km")

# Car 클래스의 인스턴스 생성
car1 = Car("현대", "소나타", 2022)
car2 = Car("기아", "K5", 2023)

# 객체의 속성을 초기화했으므로 display_info() 메서드 호출 가능
car1.display_info()  # 출력: "제조사: 현대, 모델: 소나타, 연식: 2022, 주행거리: 0km"
car2.display_info()  # 출력: "제조사: 기아, 모델: K5, 연식: 2023, 주행거리: 0km"

# 주행 후 주행거리 업데이트
car1.drive(100)
car2.drive(50)

# 주행거리가 업데이트된 정보 출력
car1.display_info()  # 출력: "제조사: 현대, 모델: 소나타, 연식: 2022, 주행거리: 100km"
car2.display_info()  # 출력: "제조사: 기아, 모델: K5, 연식: 2023, 주행거리: 50km"


위 예시에서 `Car` 클래스의 `__init__` 메서드는 `make`, `model`, `year` 매개변수를 받아서 `self.make`, `self.model`, `self.year` 속성을 초기화합니다. 또한 `self.mileage` 속성을 0으로 초기화하여 주행거리를 저장할 수 있도록 합니다.

객체 `car1`과 `car2`가 생성될 때 `__init__` 메서드가 자동으로 호출되어 각 객체의 속성이 초기화됩니다. 

이후 `drive` 메서드를 통해 주행을 하고 `display_info` 메서드를 통해 객체의 속성 정보를 출력할 수 있습니다.

따라서 `__init__` 메서드를 사용하면 클래스의 객체가 생성될 때 속성을 초기화하여 해당 객체의 초기 상태를 정의할 수 있습니다.

반응형