似乎我对--- python with
语句不了解。
考虑这个课程:
class test(object):
def __enter__(self): pass
def __exit__(self, *ignored): pass
现在,与with
一起使用时,就像在
with test() as michael:
print repr(michael)
我希望有一些输出,例如<测试实例在memore blah> 。但我得到无。
这里有什么问题?任何建议都会有所帮助。
(我使用的是Python 2.6.6。)
修改
谢谢
ephement指的是文档。 __enter__
方法应为
def __enter__(self): return self
答案 0 :(得分:18)
答案 1 :(得分:2)
来自the docs:
object.__enter__(self)
输入与此对象相关的运行时上下文。
with
语句将此方法的返回值绑定到语句的as
子句中指定的目标(如果有)。
答案 2 :(得分:-1)
我为repr(michael)
请改为尝试:
m.__repr__()
我不完全确定,但我认为这与您未在repr
类中定义test
方法的事实有关