Python 대상 중del__방법 이 작용 하 는 조건 에 대한 상세 한 설명
시범 코드 는 다음 과 같다.
class Demo:
def __del__(self):
print("calling __del__")
obj = Demo()
del obj
프로그램 실행 결 과 는 다음 과 같 습 니 다.
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python del_method.py
calling __del__
하지만 이 건del__집행 의 유일한 방법.사실 이 방법 도 직접 호출 할 수 있다.테스트 코드 는 다음 과 같 습 니 다:
class Demo:
def __init__(self):
print("calling __del__")
obj = Demo()
obj.__del__()
프로그램 실행 결과:
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python del_method.py
calling __del__
그러나 이런 집행 은 쓰레기 회수 의 정상 적 인 집행 을 보장 하지 못 하 는 경우 가 많다.다음 코드:
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python del_method.py
calling __del__
calling __del__
실행 결과:
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python del_method.py
calling __del__
calling __del__
추측:위의 삭제 방법 은 두 번 의 삭 제 를 촉발 하 였 으 나 인용 관계 로 삭 제 는 실현 되 지 않 았 다.수정 코드 검증 은 다음 과 같 습 니 다.
class Demo:
def __del__(self):
print("calling __del__")
del self
obj = Demo()
obj.__del__()
print(id(obj))
실행 결과:
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python del_method.py
calling __del__
140726800222040
calling __del__
위 에서 볼 때 주로 대상 에 대한 인용 도 있 는데 이 소각 동작 은 대상 의 인용 이 없어 진 후에 야 완성 할 수 있다.추가 인증 코드:
class Demo:
def __del__(self):
print("calling __del__")
del self
obj = Demo()
obj.__del__()
print(id(obj))
print(id(obj))
실행 결과:
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python del_method.py
calling __del__
140568015406936
140568015406936
calling __del__
위의 결 과 를 보면 추측 은 여전히 정확 하 다.이상 이 Python 대상 중del__방법 이 작용 하 는 조건 에 대한 상세 한 설명 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 여러분 들 이 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.