-
클래스 생성자
클래스 생성자란 클래스의 인스턴스 객체가 생성될 때 자동으로 호출되는 메소드를 말한다.
클래스 생성자의 이름으로 __init__(self) 가 공통적으로 사용된다
클래스 생성자 또한 함수이기 때문에
def __init__(self, ...):
def를 사용하여 다음과 같이 선언한다. 앞뒤로 붙는 '_'는 두 개씩이며 혼동하지 않도록 주의하자.
뒤 ... 부분에는 인자 값을 넣어주면 되는데 앞에 함수에서 설명했듯이 인자가 정해지지 않은 경우에는 인자 이름 앞에 *을 붙이는 가변 인자를 사용해주어도 무방하다. 물론 생략도 가능하다.
예)
1. 인자가 없는 경우
지금 yonyclass의 클래스 생성자에는 인자가 없다. 생성자 내에서 인스턴스 멤버를 '나는 파이썬 천재'로 초기화하고 '이것은 인스턴스 객체'라는 메시지를 출력한다.
obj = YonyClass() 과정에서 인스턴스 객체가 생성될 때 self.str이 자동으로 초기화되고 클래스의 생성자가 호출되므로 '이것은 인스턴스 객체' 라는 메시지를 출력하게 된다.
위 코드의 결과는 아래와 같다.
2. 인자가 있는 경우
name이라는 인자를 넣어주었다.
obj = YonyClass() 과정에서 () 안에 원하는 이름을 넣어주면 아래와 같이 출력이 된다.
클래스 소멸자
클래스 소멸자란 인스턴스 객체가 메모리에서 제거될 때 자동으로 호출되는 클래스 메소드를 말한다.
클래스 소멸자의 이름은 __del__(self): 이다. 클래스 생성자와 마찬가지로 '_'는 두 개씩이며, 이것 또한 함수이기 때문에
def __del__(self):
위와같이 선언할 수 있다.
또한, 인스턴스 객체를 메모리에서 제거하려면
del 인스턴스객체
위와 같이 del 명령어를 사용해서 지워주면 된다.
예)
'코딩공부 > 파이썬' 카테고리의 다른 글
파이썬 예외처리 (1) 2020.01.14 파이썬 클래스 3 (0) 2020.01.08 파이썬 클래스 (2) 2019.12.31 파이썬 패키지, 모듈 (1) 2019.11.04 파이썬 전역변수와 지역변수 (1) 2019.11.03