class ToBeDeleted:
def __init__(self, value):
self.value = val
# Whatever...
def __del__(self):
print self.value
l = [ToBeDeleted(i) for i in range(3)]
del l
이 문자는 2, 1, 0
입니다. 이제목록에 'del'이 표시됩니다.
, 삭제 된 요소의 순서는 사양 어딘가에 정의 또는은 구현이다? (또는 어쩌면 내가 이해하지 못하는 기본 역학)
출력, 예를 들어,
0, 1, 2
수 있을까?2, 1, 0
주문은 삭제하는 동안 요소에 대한 메모리 재 할당을 피하기 위해 수행되었지만 여전히 질문이 남아 있습니다.그리고 마지막 하나 -
del l
과del l[:]
문장의 차이점은 무엇입니까?
아주 많이 의심의 여지 있음. 특정 주문에 의존하는 코드를 작성하려고 생각하지 마십시오. –
순서가 지정되었다고해도, 어디에서나 목록 요소에 대한 참조를 보유 할 수 있으므로 '__del__' 메서드가 호출되는 순서는 목록에서 참조가 제거되는 순서와 다를 수 있습니다. – millimoose