본문 바로가기
Coding/초보자를 위한 파이썬 300제

초보자를 위한 파이썬 300제 // 259 클래스 소멸자

by 포스트it 2021. 3. 27.
반응형

 

문제

사람 (human) 클래스에 "나의 죽음을 알리지 말라"를 출력하는 소멸자를 추가하세요.

>>> areum = Human("아름", 25, "여자")
>>> del areum
나의 죽음을 알리지 말라

내풀이

class Human:
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    def who(self):
        print(f"이름: {self.name}, 나이: {self.age}, 성별: {self.gender}")

    def setInfo(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    def __del__(self):
        print("나의 죽음을 알리지 마라")

areum = Human("아름", 25, "여자")
del areum

결과값
나의 죽음을 알리지 마라

정답

class Human:
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

    def __del__(self):
        print("나의 죽음을 알리지마라")

    def who(self):
        print("이름: {} 나이: {} 성별: {}".format(self.name, self.age, self.sex))

    def setInfo(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

areum = Human("아름", 25, "여자")
del(areum)

__init__은 생성자 메서드,
__del__은 소멸자 메서드,
개체를 생성할 때는 <형식 이름(인자)>을 사용하고
소멸할 때는 <del 변수명>을 사용합니다.

 

728x90
반응형

댓글