CODEDRAGON ㆍDevelopment/Python
생성자와 소멸자
자바, C++와 동일하게 파이쎤에서도 클래스 생성시 초기화작업를 위해 생성자 메소드와 메모리 해제등의 종료작업을 위해 소멸자 메소드를 지원하고 있습니다.
생성자(Constructor)
· 초기자(initializer)라고도 합니다.
· 생성시 초기화 작업을 수행합니다.
· 인스턴스 객체가 생성될 때 자동으로 호출(객체를 만들 때 항상 실행됩니다)됩니다.
· 클래스로부터 객체를 만들 때, 인스턴스 변수를 초기화하거나 객체의 초기상태를 만들기 위한 문장들을 실행하는 곳입니다.
· Python에서 클래스 생성자(Constructor)는 실제 런타임 엔진 내부에서 실행되는데, 이 생성자(Constructor) 실행 도중 클래스 안에 Initializer가 있는지 체크하여 만약 있으면 Initializer를 호출하여 객체의 변수 등을 초기화합니다.
· __init__() 라는 이름을 가집니다.
· self 인자가 반드시 첫번째 인자로 정의되어야 합니다.
__init__() 생성자를 보면, width와 height라는 입력 파라미터를 받아 각각 self.width와 self.height라는 인스턴스 변수에 할당하여 객체 내에서 계속 사용할 수 있도록 설정하고 있습니다.
def __init__(self, width, height): self.width = width self.height = height
# private 변수 __size self.__size = width * height
|
소멸자
· 객체가 소멸 (메모리에서 해제; Garbage Collection 될 때)될 때 자동으로 불리어지는 메소드
· 소멸시 종료 작업을 수행합니다.
· 인스턴스 객체의 참조 카운터가 '0'이 될 때 호출됩니다.
· 파이썬에서는 메모리나 기타 자원들의 해제가 자동으로 되기 때문에 개발자가 특별히 작성하지 않아도 되는 메소드입니다.
· self 인자가 정의되어야 합니다.
· __del__()
'Development > Python' 카테고리의 다른 글
람다 함수(lambda) 장단점 (0) | 2019.08.01 |
---|---|
PEP 8 파이썬 코딩 스타일 (0) | 2019.07.16 |
상속관계에서 생성자 호출 (0) | 2019.07.10 |
while문 (0) | 2019.07.04 |
2차원 좌표값, 2차원 좌표값 예시 (0) | 2019.06.27 |