안녕하세요. 언제나 휴일, 언휴예요
이전 강의에서는 메서드의 종류(멤버 메서드, 클래스 메서드, 정적 메서드)를 살펴보았죠. 이번 강의에서는 개체를 생성할 때와 소멸할 때 수행할 코드를 정의하는 생성자와 소멸자를 알아봅시다.
Python에서 생성자와 소멸자는 메서드 이름이 __init__, __del__ 으로 정해졌습니다. __init__은 생성자 메서드의 이름으로 여기에서는 초기화 메서드라고 부르고 있습니다. __del__은 소멸자 메서드 이름입니다. 개체를 생성할 때는 <형식 이름(인자)>을 사용하고 소멸할 때는 <del 변수명>을 사용합니다.
다음은 개체를 생성할 때 __init__ 메서드를 수행하고 소멸할 때 __del__ 메서드를 수행함을 확인하는 예제 코드입니다.
#생성자와 소멸자 class Unit: def __init__(self): print("__init__ 메서드 수행") def __del__(self): print("__del__ 메서드 수행") unit = Unit() print("====") del unit
개체를 생성할 때는 필요에 의해 인자를 전달할 수도 있어요. 예를 들어 유닛 개체를 생성할 때 유닛 번호와 이름을 전달할 수도 있어요. Python에서는 __init__ 메서드의 입력 인자를 개발자 목적에 맞게 정의할 수 있어요. 하지만 __del__ 메서드의 입력 인자는 개발자가 변경할 수 없어요.
다음은 유닛 번호와 이름을 생성할 때 전달하는 예제 코드입니다.
#입력 인자가 있는 생성자 class Unit: def __init__(self,num, name): self.__num = num self.__name = name def GetNum(self): return self.__num def GetName(self): return self.__name unit = Unit(2,"홍길동") print("번호:{0} 이름:{1}".format(unit.GetNum(), unit.GetName()))