아무도 나에게 왜이 코드가 '0 1 2 done'대신 '2 1 0 done'을 인쇄 할 것인지 설명해 줄 수 있습니까? 필자가 이해할 수있는 것처럼, 목록 내재 중에 익명의 변수가 생기며, 목록 이해가 끝나지 않으면 필로 원칙을 사용하여 가비지 수집됩니다. 하지만 여전히 목록 aa에서 참조됩니다. 그렇지 않습니까? 그 이유는 두 번째 'del a'가 del이라는 마법 방법을 호출하지 않는 이유는 무엇입니까?Python : 오브젝트 __del__ 메소드 이해하기
class A:
def __init__(self, name):
self.name = name
def __del__(self):
print self.name,
aa = [A(str(i)) for i in range(3)]
for a in aa:
del a
print 'done'
고급 질문. 보십시오 http://codepad.org/niaUzGEy 5 부, 왜 3 부입니까? 이건 1 장이 아니야? 왜 5 또는 3입니까? 그걸 묻는 이유는 모르겠다;) 시간 내 주셔서 감사합니다!
하나의 질문에 두 개의 질문을 넣지 마십시오. 두 가지 질문을하십시오. –
http://stackoverflow.com/a/1481512/367273 – NPE