看起来我对Python的with
语句还不太理解。
考虑下面这个类:
class test(object):
def __enter__(self): pass
def __exit__(self, *ignored): pass
现在,当在with
中使用它时,就像这样
with test() as michael:
print repr(michael)
我希望获得一些类似于<test instance at memore blah>的输出。但我得到了None。这里出了什么问题?任何建议都会有所帮助。
(我使用Python 2.6.6。)
编辑:
感谢ephement指引我查看文档。
__enter__
方法应该这样写。 def __enter__(self): return self
object.__repr__
。 - Prestel Nué