How can I tell if I am inside a context manager?
alex23
wuwei23 at gmail.com
Wed Feb 2 23:45:46 EST 2011
On Feb 2, 1:28 am, Gerald Britton <gerald.brit... at gmail.com> wrote:
> I'd like to know how (perhaps with the inspect module) I can tell if I
> am running in a context manager.
Actually, it occurs to me the simplest way is to use the context
manager itself to keep track:
class F(object):
def __init__(self):
self.in_context = False
def __enter__(self):
self.in_context = True
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.in_context = False
>>> f = F()
>>> f.in_context
False
>>> with F() as f:
... print f.in_context
...
True
>>> print f.in_context
False
Hope this helps.
More information about the Python-list
mailing list