Skip to main content

파이썬 생성자 정리 (__init__ 중심)


파이썬 생성자 정리 (__init__ 중심)

1. 생성자란?

  • 클래스의 인스턴스를 생성할 때 자동으로 호출되는 특별한 메서드입니다.
  • 객체의 초기값 설정에 사용됩니다.

2. 기본 생성자 형태

class MyClass:
    def __init__(self, name):
        self.name = name
  • __init__()파이썬에서 생성자 역할을 하는 메서드입니다.
  • 첫 번째 매개변수는 항상 self여야 하며, 이는 현재 인스턴스 자신을 가리킵니다.

3. 사용 예시

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Alice", 25)
print(p.name)  # Alice
print(p.age)   # 25
  • p = Person("Alice", 25)를 호출하면 __init__()이 실행되어 nameage를 초기화합니다.

4. 생성자 없이 객체 생성

class Animal:
    pass

a = Animal()
  • __init__()이 없어도 객체는 생성됨
  • 자동으로 빈 생성자가 사용됨

5. 디폴트 값 설정

class Student:
    def __init__(self, name="Unknown", grade=1):
        self.name = name
        self.grade = grade
  • 생성자에 기본 값을 지정하여 인자가 없어도 사용할 수 있게 함

6. 생성자 오버로딩?

  • 파이썬은 생성자 오버로딩을 지원하지 않음
  • 대신 기본값이나 *args, **kwargs로 구현
class Book:
    def __init__(self, *args):
        if len(args) == 1:
            self.title = args[0]
        elif len(args) == 2:
            self.title = args[0]
            self.author = args[1]
        else:
            self.title = "Unknown"

7. __new__()와의 차이

항목

설명

__new__()

실제로 객체를 생성하는 메서드

__init__()

생성된 객체의 초기화를 담당하는 메서드

8. print로 확인

class Logger:
    def __init__(self):
        print("Logger 인스턴스가 생성되었습니다.")

l = Logger()  # 출력: Logger 인스턴스가 생성되었습니다.