Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 __init__() 메서드로 인스턴스 객체를 생성하는 방법

Python 클래스 인스턴스화와 __init__() 메서드의 이해

Python에서 클래스를 호출하는 인스턴스화(instantiation) 작업은 기본적으로 비어 있는 객체를 생성합니다. 하지만 대부분의 클래스는 특정 초기 상태를 가진 객체를 만들기를 원합니다. 이를 위해 Python은 __init__()이라는 특별한 메서드를 제공하며, 클래스 내부에 다음과 같이 정의할 수 있습니다.

def __init__(self):
    self.data = []

__init__() 메서드의 자동 호출

클래스에 __init__() 메서드가 정의되어 있으면, 클래스가 인스턴스화되는 순간 새로 생성된 인스턴스에 대해 이 메서드가 자동으로 호출됩니다. 따라서 별도의 초기화 코드를 실행하지 않아도 객체가 만들어질 때 원하는 초기 상태가 설정됩니다.

x = MyClass()

위 코드처럼 클래스 이름을 함수처럼 호출하면, Python은 내부적으로 빈 객체를 생성한 뒤 __init__()을 실행하여 초기화를 완료합니다.

인자를 받는 __init__() 메서드

__init__() 메서드는 필요에 따라 인자(arguments)를 가질 수 있습니다. 이 경우 클래스 인스턴스화 연산자에 전달된 인자들이 그대로 __init__()으로 넘어갑니다. 아래 예제는 복소수(Complex)를 표현하는 클래스입니다.

>>> class Complex:
...     def __init__(self, realpart, imagpart):
...         self.r = realpart
...         self.i = imagpart
...
>>> x = Complex(4.0, -6.5)
>>> x.r, x.i
(4.0, -6.5)

위 예제에서 Complex(4.0, -6.5)를 호출하면 실수부와 허수부 값이 각각 __init__()realpartimagpart 매개변수로 전달되어, 인스턴스 속성 x.rx.i에 저장됩니다.

핵심 정리

  • 클래스 호출 시 기본적으로 빈 객체가 생성됩니다.
  • __init__()은 객체 생성 직후 자동으로 실행되는 초기화 메서드입니다.
  • 첫 번째 매개변수 self는 생성된 인스턴스 자신을 가리킵니다.
  • 생성자에 인자를 전달하면 __init__()이 해당 값을 받아 인스턴스 속성을 설정할 수 있습니다.