2012-01-24 15 views
3

私はgoogleと他の場所を試しましたが、with文の良い説明が見つからないようです。どんな状況でそれは有用ですか?私はそれがファイルとどのように動作するのかを知るが、それ以外はどうすれば使えるだろうか?ここで文章の説明付きの良いPython

+2

特定の質問をしてください。 – bmargulies

+6

あなたは何を探しているのかわかりませんが、["python with statement"](https://www.google.com/search?q=python+with+statement)は私にとってかなり良い結果をもたらします。 –

+3

あなたは何を理解していますか?何を試しましたか?あなたは文書を読んだことがありますか?これはどう? http://effbot.org/zone/python-with-statement.htm –

答えて

4

は良い例です:

文が実行される「と」、Pythonの式を評価し、 は(「コンテキストガード」と呼ばれている)結果の値に方法を入力してください呼び出す
class controlled_execution: 
      def __enter__(self): 
       set things up 
       return thing 
      def __exit__(self, type, value, traceback): 
       tear things down 

     with controlled_execution() as thing: 
      some code 

と入力された場合は、で与えられた変数に戻ります。 Pythonはコード本体を実行し、そのコードで何が起きても、ガードオブジェクトの出口メソッドを呼び出します。

+2

これは[source](http://effbot.org/zone/python-with-statement.htm)からコピーされています - 両方とも、ソースコードとその説明。 effbotのソースコードはパブリックドメインにありますが、記事自体を再発行することはできません(http://effbot.org/zone/copyright.htm)。これは単なる段落であるため、フェアユースと見なされるかもしれませんが、少なくとも参考文献が必要です。 –

+0

それは私自身の仕事の文脈の下では決してありませんでした。実際、それは明示的に良い例を示しています。 – OnResolve

+0

@OnResolve:**の例はありません**。たとえそれがそうではないと言っても、それはあなたのものである可能性が非常に高いということです。この場合、証拠はあなたのものではないことを示しています。今、私は指を指差していません。私は単純に間違って解釈されるかもしれない何かを明確にしようとしています。 – BoltClock