>  기사  >  백엔드 개발  >  del 키워드와 인스턴스 메소드 __del__(self)에 대한 간략한 토론

del 키워드와 인스턴스 메소드 __del__(self)에 대한 간략한 토론

巴扎黑
巴扎黑원래의
2016-11-26 10:53:471526검색

Python에는 __del__(self)와 유사한 특수 메서드가 많이 있습니다. 그 중 __gt__(), __le__() 등과 같은 일부는 이름으로 대략적인 함수를 추측할 수 있지만 일부는 마음대로 추측할 수 없습니다. (물론 나만 이런 일을 할 수도 있다.) 예를 들어 __del__()과 del이 여기에 등장할 예정이다. 나는 객체가 삭제될 때 __del__()이 호출될 것이라고 생각했었다. 하지만 몇번이고 필기시험을 치르고, 불합격 이후에는 이런 세세한 점들을 더 알아보기 시작했습니다^_^!
자세히 이야기하고 요점을 말씀드리겠습니다!
del은 실제로 개체의 참조 횟수를 1씩 줄여야 한다는 것을 알고 있습니다. 그러나 __del__()은 호출될 때마다 호출되지 않는다는 점에 유의하세요. 예에서 알 수 있듯이 객체의 참조 횟수가 0으로 떨어질 때 __del__()이 호출되기 때문입니다.

>>> class C:
        def __del__(self):
        print("I'm vanishing...")
>>> c = C()
>>> b = c            # 注意,此时对C()的引用计数为2
>>> del b
>>>                  # 瞧,什么输出都没有,说明__del__()并没调用
>>> del c
I'm vanishing...     # 引用计数降为0后才被调用
>>>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.