생성자와 소멸자

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