inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

Class(1-2)

소멸자의 호출에 관한 질문입니다

416

vpdtlrdl

작성한 질문수 45

0

소멸자는 '객체가 소멸할 때 자동으로 호출되는 함수'라고 설명하셨는데 이게 정확히 어떤 원리인지 잘 모르겠습니다


class IceCream:
    def __init__(selfnameprice):
        self.name = name
        self.price = price
        print(self.name + '의 가격은' + str(self.price) + '원 입니다')

    def __del__(self):
        print(self.name + '객체가 소멸합니다')

obj = IceCream('월드콘'1000)

위와 같이 코드를 작성해 보았는데요, 객체만 생성하였는데도 이를 실행하니까 __del__메소드의 내용까지 모두 실행되는 것을 확인할 수 있었습니다.

del obj 와 같은 코드를 입력해야 __del__메소드가 실행되는 것이 아닌가요??

뭐가 문제인지 궁금합니다

소멸자 python

답변 1

0

좋은사람

안녕하세요.

프로그램이 종료 될 때 메모리에서 불필요한 부분 소거를 위해서 호출 되요~~

계속 실행되는 프로그램이 아니고 인터프리터가 종료 되기 때문에 실행됩니다.

0

vpdtlrdl

답변 감사드립니다!! 그럼 한 클래스에서의 실행이 모두 끝났을 때 __del__이 있으면 소멸자가 자동으로 실행된다고 봐도 되는건가요??  del obj 같은 코드를 실행해야 __del__이 실행되는 것인지 헷갈리네요ㅠㅠ..

강의의 warehouse 예제에서는 del user1을 실행해야 stock_num이 1로 줄어들었는데, 어떤 차이점이 있는 것인지 잘 모르겠습니다..

그리고 __del__은 인자로 self 하나만을 가지고 있는데, 생성한 객체의 인자 수와 맞지 않아도 실행되는 이유가 궁금합니다

답답하실텐데 죄송합니다ㅠㅠ 

Python: Select Interpreter 오류

0

40

1

54강 4분 41초에서 질문 있어요.

0

57

1

import

0

37

1

45강 예제4번에서 질문 있어요!

0

55

1

45강 강의 10분 03초 내용에서 x + 1 을 하는 이유는 뭔가요?

0

49

1

3강, 7강 화면이 안나옵니다. 그냥 검은화면으로만 노출되요;;

0

51

1

41강 1분 39초 영상에서 import test_module이 조회 안 돼요.

0

56

1

29강 while(3-1) 5분 20초 강의 영상 질문

0

51

0

pcskjs@naver.com

0

60

1

인터프리터 설정이 안됩니다.

1

76

1

Python formatter 설치

0

44

1

자료 다운로드 위치 확인 부탁드립니다.

0

50

2

보라색 예약어

0

49

1

#을 붙이는 이유

0

46

1

실행이 안 되는데요.

0

59

1

print 문법 실행 안 돼요.

0

54

1

영문 계정

0

47

1

맥북에서 아이패드로 연결해서 보려고 하면 화면이 안뜹니다.

0

41

1

인스턴스 변수 문의

0

83

1

챕터 03_04 (튜플) 교육자료

0

88

2

Package(3-1) Sub 폴더 자료

0

70

1

아톰 출력 안됨

0

118

2

강의자료 메일 발송 요청 드립니다.

0

122

1

강의자료 메일로 보내주실 수 있으실까요?

1

78

0