In Python, se apri un file senza chiamare close()o chiudi il file ma non lo usi try- finallyo l' withistruzione " ", è 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 fordell'affermazione perché il file non rientra nell'ambito di applicazione?
forblocchi 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.
forciclo 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.
forblocco. 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.