In einem Python-Skript außerhalb verwenden, stieß ich auf eine Variable, die in einer with
Anweisung definiert wurden, aber das war außerhalb der Aussage, wie file
im folgende Beispiel verwendet:Python Variable mit Anweisung
with open(fname, 'r') as file:
pass
print(file.mode)
Intuitiv I würde sagen, dass file
nicht außerhalb der with
Erklärung existieren sollte und dass dies nur zufällig funktioniert. Ich konnte in der Python-Dokumentation keine schlüssige Aussage darüber finden, ob das funktionieren sollte oder nicht. Ist diese Art von Anweisung sicher für die Verwendung (auch für zukünftige Python-Versionen) oder sollte sie vermieden werden? Ein Zeiger auf diese Information in den Python-Dokumenten wäre ebenfalls sehr hilfreich.
Der Code Sie auf dem Laufenden sollte nicht funktionieren. Wenn Sie den Kontextmanager (den with-Block) verlassen, wird die Datei geschlossen. **Ich stehe korrigiert. Siehe Kommentare unten. ** –
@WillDaSilva haben Sie es versucht? Es funktioniert für mich in Python 2.7 – asongtoruin
Es funktioniert, da 'file.mode' greift nicht auf die Datei selbst, nur das Python-Objekt. – Octaviour