2016-04-08 3 views

Antwort

4

Der Vorteil der Verwendung des Konstrukts "mit" ist genau, dass Sie sich nicht darum sorgen müssen, die Datei hier zu schließen, da sie automatisch geschlossen wird, wenn die Datei den Gültigkeitsbereich verlässt.

1

In cpython schließen Dateien, wenn ihr Refcount auf Null geht, auch wenn Sie keine With-Anweisung verwenden. Je nachdem, wie Sie das Dateiobjekt verwenden, besteht das Risiko, dass zirkuläre Referenzen dies verhindern. Aber es gibt Bedingungen wie einige Signale, bei denen keine regelmäßige Bereinigung stattfindet. In diesem Fall verlieren Sie möglicherweise alle Daten, die sich noch im lokalen Prozessdateipuffer befinden, der nicht geleert wurde.

Die am wenigsten riskante Lösung besteht darin, with Anweisungen zu verwenden, wenn möglich und try/finally blockiert, die sonst Dateien bereinigen.

Verwandte Themen