In Python, se apri un file senza chiamare close()
o chiudi il file ma non lo usi try
- finally
o l' with
istruzione " ", è un problema? Oppure è una pratica di codifica basarsi sulla garbage collection di Python per chiudere tutti i file? Ad esempio, se uno fa questo:
for line in open("filename"):
# ... do stuff ...
... è un problema perché il file non può mai essere chiuso e potrebbe verificarsi un'eccezione che ne impedisce la chiusura? O sarà sicuramente chiuso alla conclusione for
dell'affermazione perché il file non rientra nell'ambito di applicazione?
for
blocchi e funzioni / classi / moduli. È molto più semplice di così: gli oggetti non hanno ambiti, ma solo i nomi. Non esiste un nome che si riferisca a questo oggetto, quindi qui non c'è nulla che rimanga nell'ambito o esca dall'ambito.
for
ciclo e menzionando che il file viene chiuso per un motivo completamente diverso. Non entra in quali ambiti si trovano in Python, in quanto non è rilevante qui.
for
blocco. Il conteggio dei riferimenti andrà a zero, causando la chiusura automatica, ma solo funzioni, classi e moduli definiscono gli ambiti in Python, non altre istruzioni composte.