파이썬 생성자 정리 (__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__()
이 실행되어name
과age
를 초기화합니다.
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__()
와의 차이
항목 | 설명 |
---|---|
| 실제로 객체를 생성하는 메서드 |
| 생성된 객체의 초기화를 담당하는 메서드 |
8. print로 확인
class Logger:
def __init__(self):
print("Logger 인스턴스가 생성되었습니다.")
l = Logger() # 출력: Logger 인스턴스가 생성되었습니다.