Python - Class의 생성자와 소멸자
파이썬은 객체 지향 프로그래밍 언어로서, 클래스와 객체 (인스턴스)를 지원합니다. 그렇기에 init(생성자) del(소멸자) 메서드를 가지고 있습니다. 이 두 가지의 메서드를 이해하고 사용할 줄 안다면 파이썬 클래스를 이용한 객체 생성 과정과 소멸 과정을 제어할 수 있게 됩니다.
생성자란?
__init__ 메서드 (생성자)란 객체가 생성될 때 자동으로 호출되는 메서드입니다. 파이썬은 init 메서드가 생성자의 역할을 가지고 있으며 객체 초기화와 관련된 코드를 포함합니다.
생성자의 역할과 필요성
생성자는 객체가 생성될 때 자동으로 호출되는 메서드로, 객체 초기화와 관련된 코드를 담당합니다. 일반적으로 객체의 속성을 초기화하는 코드를 포함하며, 객체가 생성될 때 반드시 호출되어야 합니다. 생성자의 필요성은 다음과 같습니다.
1. 객체 초기화: 생성자는 객체의 속성을 초기화하는 역할을 담당하여, 객체가 올바르게 작동할 수 있도록 합니다.
2. 코드 중복 제거: 생성자를 사용하면 객체 생성 시 필요한 초기화 코드를 중복해서 작성하지 않아도 되므로, 코드의 가독성과 유지 보수성을 높일 수 있습니다.
3. 상속과 다형성: 생성자는 상속 시에도 자식 클래스에서 부모 클래스의 생성자를 호출하여 초기화될 수 있으므로, 다형성을 구현하는 데 필수적입니다.
위 예시에서 Person_info 클래스의 객체가 생성될 때 init 메서드가 호출됩니다. 이때 name과 age 매개변수를 전달하여 객체 내부의 속성으로 초기화합니다.
소멸자란?
소멸자 (del 메서드)란 객체가 소멸될 때 자동으로 호출되는 메서드로, 객체가 사용한 자원을 해제하기 위한 코드를 포함합니다. 객체가 소멸되기 전 필요한 작업 (자원 해제, 파일 저장 등)을 수행하는 역할을 하며, 파이썬에서는 del 메서드를 사용하여 구현합니다.
소멸자의 역할과 필요성
1. 메모리 관리: 객체가 사용한 메모리 자원을 해제하여 메모리 누수를 방지함으로써 시스템 안정성을 높이기 위함입니다.
2. 자원 해제: 객체가 사용한 외부 자원 (파일, 소켓 등)을 해제하여, 시스템 자원의 효율적인 관리를 위함입니다.
위의 예시에서 Person_info 클래스의 객체가 소멸될 때 del 메서드가 호출됩니다.
파이썬에서 클래스의 생성자와 소멸자는 init 메서드와 del 메서드를 사용하여 구현합니다. 이들 메서드를 이해하고 활용하면 객체 생성과 소멸 과정에 필요한 코드를 적절한 위치에 배치할 수 있어, 객체 지향 프로그래밍이 보다 효율적으로 이루어질 수 있습니다.
'programming language > Python' 카테고리의 다른 글
Python - 클래스 상속과 오버라이딩(Overriding) (3) | 2023.08.07 |
---|---|
Python - 클래스 상속, 오버라이딩, 다중 상속을 활용한 객체 지향 디자인 (0) | 2023.08.04 |
파이썬에서 쿼리문 사용하기 - Python (0) | 2023.07.25 |
Python - Class 변수 및 인스턴스 (0) | 2023.07.21 |
VS code에서 엑셀 다루기 - Xlwings (0) | 2023.07.13 |