inflearn logo
강의

Course

Instructor

Python 100 Problem Solving with Examples Part 3

Instance, Object, Object Count

소멸자 관련 질문

268

tnsdud35060196

1 asked

1

안녕하세요.

소멸자는 인스턴스 객체를 생성한 후에 소멸시에 사용하는 것으로 알고 있습니다.

인스턴스 객체 p1만 소멸 시키고자 del p1을 수행했는데 p2까지 모두 소멸되었습니다.

소멸자는 객체 소멸이아니라 클래스 전체를 소멸하는 것인지 알고 싶습니다.

소멸자를 사용하는 이유가 메모리 효율때문인것같은데 어느 타이밍에 사용해야 하는지도 알고 싶습니다.

 

코드

import random


class Person:

    # 클래스 변수
    count_class_var = 0

    # 생성자
    def __init__(self, name, age, power):
        self.name = name
        self.age = age
        self.power = power
        self.increase_obj()

    # 클래스 메서드
    def increase_obj(self):
        Person.count_class_var += 1

    # 소멸자
    def __del__(self):
        print(self.name + ' 소멸되었습니다.')
        Person.count_class_var -= 1


def add_power_level():
    return random.choice([i for i in range(1, 11)])


# [2]:클래스 사용
p1 = Person('홍길동', 20, add_power_level())
print(Person.count_class_var)

p2 = Person('강감찬', 30, 9)
print(Person.count_class_var)

del p1

 

결과

1
2
홍길동 소멸되었습니다.
강감찬 소멸되었습니다.

python

Answer 1

0

itme2019

저도 똑같은 질문이 있습니다

저는 심지어 del 명령을 실행하지도 않았는데

생성된 객체들이 모두 없어질 때까지 자동으로 소멸자가 작동되었습니다

혹시 질문에 대한 해답을 얻으셨나요?

수강 신청 연장 문의드립니다.

0

14

1

26년2회 실기기출은 언제쯤...

0

13

2

재귀함수 종료조건

0

8

1

git bash .env

1

12

1

예제 001 실행 안됩니다.

0

13

3

ipython 설치가 안되는거 같습니다.

0

9

1

이론 공부법 요약본 버전 업데이트 문의

0

15

2

피드백 내용 문의드립니다.

0

20

0

백준 서비스 종료로 인한 강의 자료 업데이트 요청드립니다.

0

22

1

백준 사이트 준비중이라 문제를 볼 수 가 없어요

0

21

1

작업형 1번문제... 환경관련

0

23

2

09차 네이버 영화 리뷰 수집 실습 관련 질문

0

26

1

12회 기출은 언제 업데이트 될까요??

0

33

2

알파벤티지 sleep(5) 관련 문의

1

39

2

강의 자료 및 코드 수령

0

29

2

8/6 작성한 연장문의 질문글에 대한 재요청

0

36

2

실전 계좌에서 운영하고 계신 분 계신가요?

1

40

2

수강기간 연장 문의

0

33

2

수강기간 연장문의

0

34

2

수강기간 연장 요청 문의드립니다

0

33

2

Fal.ai에 기존 AI를 끌어오는것은 안되는건가요?

0

35

2

잘못된 파일 다운로드

0

35

1

DataSet 다운 받는 방법

0

30

1

인덱스로는 왜 접근이 불까한가요?

0

205

0