📖 목차
1) 생성자(Constructor)2) 소멸자(Destructor)
1) 생성자(Constructor)
- 생성자는 클래스의 인스턴스가 생성될 때 자동으로 호출되는 특수 메서드이다.
- 파이썬에서 생성자는
__init__()라는 이름으로 정의된다. - 일반적으로 객체 초기화(멤버 변수의 초기값 설정 등)에 사용된다.
__init__()메서드는 첫 번째 매개변수로 항상self를 받아야 하며, 추가적인 매개변수를 통해 사용자 정의 초기화를 수행할 수 있다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 30)
print(p.name) # 출력: Alice
2) 소멸자(Destructor)
- 소멸자는 객체가 메모리에서 삭제될 때 호출되는 특수 메서드이다.
- 파이썬에서 소멸자는
__del__()이라는 이름으로 정의된다. - 자원 해제, 파일 닫기, 데이터 저장 등 객체가 사라지기 전 필요한 정리 작업을 수행할 수 있다.
- 그러나 파이썬은 가비지 컬렉션(Garbage Collection)을 사용하므로,
__del__()의 호출 시점은 명확하지 않다. 이에 따라 의존적인 동작은 최소화하는 것이 권장된다.
class FileHandler:
def __init__(self, filename):
self.file = open(filename, 'w')
def __del__(self):
self.file.close()
print("파일이 닫혔습니다.")
f = FileHandler("output.txt")
del f # 소멸자 호출됨
생성자와 소멸자는 객체의 생애주기(lifecycle)를 관리하는 데 핵심적인 역할을 하며, 자원의 효율적인 사용과 안정적인 프로그램 구성을 위해 적절히 활용되어야 한다.