5
는 다음 코드 테스트에 이것에 대해 질문이 있습니다 : 파일 개체가 닫혀파이썬에서 함수 스택 데이터를 언제 릴리스해야합니까?
def file_close_on_exc_test():
f = open('/tmp/test', 'w+')
raise Exception()
def exception_wrapper():
try:
file_close_on_exc_test()
except:
pass
# wait to see whether file closed.
import time
time.sleep(10)
if __name__ == '__main__':
exception_wrapper()
import time
time.sleep(30)
-
1
def file_close_test(): f = open('/tmp/test', 'w+') if __name__ == '__main__': file_close_test() # wait to see whether file closed. import time time.sleep(30)
2, 때 아무 때문에 file_close_test 종료 그것을 참조하십시오.
- 예외가 제기 된 후에는 파일 객체가 닫히지 않았습니다. 따라서 관련 스택 데이터가 해제되지 않았다고 생각합니다.
- exception_wrapper 종료 후 파일이 자동으로 닫힙니다.
나를 설명 할 수 있습니까? 감사.
또한 열심히 : '열기 ('/ tmp/test ','w + ') f :' –
그것은 나를 많이 도와줍니다, 감사합니다 :) – yancl