Datei gelesen mit "open ()" vs "mit open ()" [duplizieren]

8

Ich weiß, dass es viele Artikel und Fragen zum Lesen von Dateien in Python gibt. Aber ich frage mich immer noch, was Python dazu gebracht hat, mehrere Möglichkeiten zu haben, die gleiche Aufgabe zu erledigen. Was ich einfach wissen möchte, ist die Auswirkung der Verwendung dieser beiden Methoden auf die Leistung?

    
Chamath 10.07.2015, 06:37
quelle

1 Antwort

19

Die Verwendung der with -Anweisung dient nicht der Leistungssteigerung. Ich glaube nicht, dass mit der Verwendung von with -Anweisung Leistungsgewinne oder -verluste verbunden sind, solange Sie die gleiche Bereinigungsaktivität wie with statement ausführen automatisch ausführen.

Wenn Sie with -Anweisung mit open -Funktion verwenden, müssen Sie die Datei nicht am Ende schließen, weil with diese automatisch für Sie schließt.

with statement dient nicht nur zum Öffnen von Dateien, sondern wird auch in Verbindung mit Kontextmanagern verwendet. Grundsätzlich, wenn Sie ein Objekt haben, das Sie sicherstellen möchten, dass es gereinigt wird, sobald Sie damit fertig sind oder irgendwelche Fehler auftreten, können Sie es als context manager und with statement ruft seine Methoden __enter__() und __exit__() beim Eintritt in den with-Block und beim Verlassen des with-Blocks auf. Laut PEP 0343 -

  

Dieser PEP fügt der Python-Sprache eine neue Anweisung " with " hinzu, um es zu ermöglichen, Standardverwendungen von try / finally-Anweisungen auszuschließen.

     

In diesem PEP stellen Kontextmanager die Methoden __enter__() und __exit__() bereit, die beim Eintreten in den Hauptteil der with-Anweisung aufgerufen und beendet werden.

Auch, Leistungstests der Verwendung von with und nicht die Verwendung von -

%Vor%     
Anand S Kumar 10.07.2015, 06:47
quelle

Tags und Links