と外のpython変数を使用して、私はwith
文の中に定義された変数に遭遇しましたが、それは、次の例ではfile
のように、文の外で使用された:Pythonスクリプトで声明
with open(fname, 'r') as file:
pass
print(file.mode)
直感的に、私はwith
の文の外側にはfile
が存在してはならないとし、これは偶然にしか動作しないと言います。これがうまくいくかどうかについては、Pythonのドキュメントで決定的な声明を見つけることができませんでした。このタイプのステートメントは、(将来のPythonバージョンのために)安全に使用できますか、それとも避けるべきですか? Pythonのドキュメントにあるこの情報へのポインタも非常に役に立ちます。
あなたが投稿したコードすべきではない。コンテキストマネージャ(withブロック)を離れると、ファイルが閉じます。 **私は正しかった。下記のコメントを参照してください。** –
@WillDaSilvaあなたはそれを試しましたか?それはPython 2.7の私のために働いています – asongtoruin
'file.mode'はファイル自体にアクセスするのではなく、Pythonオブジェクトだけにアクセスします。 – Octaviour