Pythonのwithステートメント
匿名の方にコメントをもらった。
pythonのwithステートメントでは as の後ろに書いた変数には__enter__の戻り値が入ってくるそうだ。
ならこれでOK??
# -*- coding:utf-8 -*- from __future__ import with_statement import sys class Cls: def __init__(self,data): self.data = data def __enter__(self): print "_enter_" return self def __exit__(self,type,value,traceback): print "__exit__\ntype:%s\ntype:%s\ntraceback:%s" % (type,value,traceback) return True def disp(self): print self.data with Cls("あいうえお") as o: o.disp() で、実行結果はこれ。 >>> _enter_ あいうえお __exit__ type:None type:None traceback:None >>>
おお。うまくいった。