On Fri, Oct 29, 2010 at 4:02 AM, Antoine Pitrou <solip...@pitrou.net> wrote: > 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
So, how/why does that work? Cheers, Chris -- http://mail.python.org/mailman/listinfo/python-list