__Enter__
oder __exit__
scheint schwierig zu sein ...Mit dem Contextmanager-Dekorator können Sie relativ einfach und mit einem Gefühl schreiben, das einem Rubinblock ähnelt.
Dies ist ein Beispiel für den Referenzlink
from contextlib import contextmanager
@contextmanager
def tag(name):
print "<%s>" % name
yield
print "</%s>" % name
>>> with tag("h1"):
... print "foo"
...
<h1>
foo
</h1>
Es ist so.
http://docs.python.jp/2/library/contextlib.html#module-contextlib
Recommended Posts