seems like I do not understand something with---the python with
statement.
Consider this class:
class test(object):
def __enter__(self): pass
def __exit__(self, *ignored): pass
now, when using it with with
, like in
with test() as michael:
print repr(michael)
I would expect some output like <test instance at memore blah>. But I get None.
Something wrong here? Any suggestions would help.
(I am using Python 2.6.6.)
EDIT:
Thanks to
ephement for pointing me to the documentation. The __enter__
method should read
def __enter__(self): return self
From the
with
documentation:If you
def __enter__(self): return self
, then your expected output is produced.From the docs:
I get the same thing for
repr(michael)
Try this instead:
I'm not entirely sure, but I think it has something to do with the fact that you haven't defined the
repr
method in yourtest
class