Wenn Sie in Python entweder eine Datei öffnen, ohne sie aufzurufen close()
, oder die Datei schließen, aber nicht verwenden try
- finally
oder die with
Anweisung " ", ist dies ein Problem? Oder reicht es als Codierungspraxis aus, sich auf die Python-Garbage-Collection zu verlassen, um alle Dateien zu schließen? Zum Beispiel, wenn man dies tut:
for line in open("filename"):
# ... do stuff ...
... ist dies ein Problem, weil die Datei niemals geschlossen werden kann und eine Ausnahme auftreten kann, die verhindert, dass sie geschlossen wird? Oder wird es am Ende der for
Erklärung definitiv geschlossen, weil die Datei nicht mehr gültig ist?
for
Blöcken und Funktionen / Klassen / Modulen zusammen. Es ist viel einfacher als das: Objekte haben keine Bereiche, nur Namen. Es gibt keinen Namen, der auf dieses Objekt verweist, daher gibt es hier nichts, was im Geltungsbereich bleiben oder den Geltungsbereich verlassen könnte.
for
Schleife ein Bereich zugeordnet ist, und erwähnt, dass die Datei aus einem ganz anderen Grund geschlossen wird. Es wird nicht auf die Bereiche in Python eingegangen, da dies hier nicht relevant ist.
for
. Der Referenzzähler wird auf Null gesetzt, wodurch er automatisch geschlossen wird. Es werden jedoch nur Funktionen, Klassen und Module in Python definiert, keine anderen zusammengesetzten Anweisungen.