inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

예제로 공부하는 Python 100 문제풀이 Part.3

인스턴스, 객체, 객체 카운트

소멸자 관련 질문

263

김순영

작성한 질문수 1

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

답변 1

0

itme2019

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

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

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

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

loop is not defined

0

8

1

slack 알림 연동 강의 관련

1

12

2

가상환경 설정이 안됩니다

0

8

0

supabase_key 관련

1

27

3

프롬프트의 영문 버전을 만들 때, 출력 규칙에 포함된 한글 부분은 영어로 번역하지 않고 그대로 유지하면서, 영문 편과 한글 편을 한 번에 함께 출력하려면 어떤 워크플로우로 구성하면 좋을까요?

0

19

0

프로그램은 뭘 사용하시는 건가요??

1

20

2

수업자료와 노션 공유 문제

0

36

3

python run.py 실행시 에러 문제

1

62

2

조건 반복문 질문: for 문 ?

0

41

1

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

0

38

1

커서창

1

41

2

강의 제작

1

42

1

23강 질문드립니다, 강사님.

0

27

1

import

0

31

1

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

0

42

1

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

0

35

1

Json.stringify 관련 오류일까요?

0

36

2

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

0

35

1

cursor 환경

1

51

2

Gradio 실행 시 에러 발생 문의

0

48

2

Gradio 실행 시 Jinja2 / ASGI TypeError: unhashable type: 'dict' 에러 문의

0

50

2

안녕하세요, 강의자료 요청드립니다

0

35

1

개발 환경 준비와 프로젝트 구조 강의 관련

1

47

2

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

0

202

0