Skip to content

Instantly share code, notes, and snippets.

@svanellewee
Created August 8, 2016 12:21
Show Gist options
  • Save svanellewee/45aadb33cdf44f6d9be152d7b6120f74 to your computer and use it in GitHub Desktop.
Save svanellewee/45aadb33cdf44f6d9be152d7b6120f74 to your computer and use it in GitHub Desktop.
context manager 2 uses.
class Hello(object):
def __init__(self, bla):
print "CONSTRUCT WITH{}".format(bla)
self.bla = bla
def __enter__(self, *args, **kwargs):
print "{{ENTER[{}]".format(self.bla)
return "SOMETHING"
def __exit__(self, *args, **kwargs):
print "done[{}]}}".format(self.bla)
with Hello("yaddayadda") as x:
print ">->",x
x2 = Hello('blablabla')
print ".."
with x2 as y:
print ">>", x2, y
"""
CONSTRUCT WITHyaddayadda
{ENTER[yaddayadda]
>-> SOMETHING
done[yaddayadda]}
CONSTRUCT WITHblablabla
..
{ENTER[blablabla]
>> <__main__.Hello object at 0x104cc1fd0> SOMETHING
done[blablabla]}
"""
@svanellewee
Copy link
Author

svanellewee commented Aug 8, 2016

the as keyword just spits out the

__enter__

return value. (Optional)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment