On Sun, 24 Oct 2010 10:48:23 +0200
"Martin v. Loewis" <mar...@v.loewis.de> wrote:
> 
> You may now wonder whether it is possible to set __context__ to None
> somehow. See PEP 3134:
> 
> Open Issue: Suppressing Context
> 
>     As written, this PEP makes it impossible to suppress '__context__',
>     since setting exc.__context__ to None in an 'except' or 'finally'
>     clause will only result in it being set again when exc is raised.

It is not easily discoverable, but it is possible to suppress
__context__ by using a bare re-raise afterwards:

>>> try:
...   try: 1/0
...   except ZeroDivisionError: raise KeyError
... except BaseException as e:
...   e.__context__ = None
...   raise
... 
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
KeyError


Regards

Antoine.


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to