inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Từ cơ bản đến nâng cao Python do kỹ sư Silicon Valley giảng dạy

Tìm hiểu về Special / Magic method (Phương thức đặc biệt)

__del__ 작동 여부

337

taeho7702

2 câu hỏi đã được viết

1

강의와 동일한 코드를 실행하였는데 강의에서의 맨 마지막 코드 실행 결과는 True만 출력된 것에 비해 직접 해본 결과

True

car deleted

car deleted

가 출력되었습니다

따로 del tesla를 하지 않아도 자동으로 변수가 del된 것 같은데 혹시 어떤 이유로 이러한 차이가 발생한 것일까요?

python 알고리즘

Câu trả lời 4

1

taeho7702

실행 결과는

True

this car deleted

this car deleted

입니다

1

taeho7702

class Tesla(object):
  
  def __init__(self, owner, color):
    self.owner = owner
    self.color = color
    
  def __str__(self):
    return f"{self.color} color {self.owner}'s car"
    
  def __len__(self):
    return len(self.owner)
    
  def __del__(self):
    print("this car deleted")
    
  def __eq__(self, other):
    return self.color == other.color

tesla = Tesla("A", "Yellow")
tesla1 = Tesla("B", "Yellow")
print(tesla == tesla1)

0

altoformula

안녕하세요 taeho7702님,

혹시 테스트 하실때 그냥 터미널에서 python 파일을 실행하시나요? 그렇게 된다면 GC(Garbage Collector)가 실행되어 __del__ 실행될 겁니다. 그렇지 않고 Jupyter notebook이나 Replit을 사용하신다면 GC가 나중에 세션이 끝나고 실행이 되기 때문에, 다른 밑에 두개의 프린트는 뜨지 않습니다 ㅎㅎㅎ

image

0

taeho7702

평소 Replit을 사용하였는데 다시 시도해 보아도 계속해서 동일하게 3줄이 출력되네요 혹시나 해서 Jupyter notebook을 사용해 보았는데 True만 정상 출력되는 것은 확인했습니다 Replit의 설정을 건드리는 기억은 없는데 어떠한 이유인지는 모르겠네요 답변 감사합니다

0

altoformula

안녕하세요 taeho7702님,

제가 코드를 보지 않고는 질문이 잘 이해가 안 가는데, del tesla를 하지 않고서는 __del__이 실행이 되지는 않을 것 같습니다. 보통 이 Destructor는 Garbage Collector가 작동할 때, 즉 Object에 참조하는 것이 없어질때 실행되는데, 왜 그런 일이 일어났을까요? 혹시 코드를 올려주시면 제가 답변하는데 도움이 될 것 같습니다.

[업데이트] 파이썬 패키지 부분에서 안되어서 강의 진행 불가

2

59

3

html 읽기 오류

1

90

2

DataFrame groupby 사용관련 질문

1

91

2

pylint shell 사용법

0

71

2

자막오류 수정가능한가요?

0

79

1

복합 조건절 관련 궁금증

0

79

2

49.행맨 프로그램 - 재시도 횟수 관련.

1

76

1

64. 파이썬 입문자가 쉽게 빠지기 쉬운 몇가지 에러(혹은 로직)에 대해 알아보기

0

103

2

Replit UI가 업데이트 되서 강의 진행이 멈췄어요

2

178

3

Replit을 사용해보려고 하는데 영상처럼 진행이 안되네요

3

405

2

실무에서의 제네레이터 함수 사용에 관한 질문입니다.

0

64

2

영상이 소리만 나오고 영상은 안보입니다.

0

85

2

pandas 오류 질문

0

125

2

상속 질문

1

132

2

total을 float으로 바꾸신 이유

0

200

2

섹션2 ["환경 vs. 설정 vs. 구성"] 강의 자막 문의

0

141

1

파이썬 data insert to table

0

221

2

파이썬 Class Method 질문

0

154

2

timeit 쓸 때는 만들었던 함수를 재사용 할 수는 없는지?

0

131

2

__repr__ 와 __str__ 차이점?

0

204

2

class method vs static method

0

270

2

Type hint 문법의 Type Checking이 강제성이 있는지?

0

164

2

클래스 접근자 강의 복습부분 0:47에 오타가 있네요

0

104

2

수업 때 쓰셨던 txt file 공유 해주시면 좋겠습니다

1

177

1