Ho una domanda su questo sul test del seguente codice:quando rilasciare i dati dello stack di funzioni in python?
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,
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)
- L'oggetto file chiuso quando i file_close_test uscite perché nessuno riferimento ad esso.
- Dopo l'eccezione sollevata, l'oggetto file non è chiuso.so penso che i relativi dati dello stack non siano stati rilasciati.
- Dopo l'uscita exception_wrapper, il file si chiude automaticamente.
puoi spiegare questo per me? Grazie.
Non è nemmeno così difficile: 'con open ('/ tmp/test', 'w +') come f:' –
mi aiuta molto, grazie :) – yancl