Alexander Belopolsky <belopol...@users.sourceforge.net> added the comment:

The case in msg76028 are probably not pointing to a bug.  If subclass' __init__ 
passes its args to the base class __init__ (as it probably should), pickling 
works: 

class E(Exception):
    """Extension with values, init called with args."""
    def __init__(self, foo):
        self.foo = foo
        Exception.__init__(self, foo)

>>> from pickle import *
>>> loads(dumps(E(1)))
E(1,)
>>> _.foo
1

What would be a use case for not setting args?  Even if there was a valid use 
case for it, it would be easy to simply provide custom __getinitargs__ or 
__reduce__ to support it.

Note that with msg76028 definitions, eval(repr(C('foo'))) also raises a 
TypeError, so properly supporting args hiding in exception subclasses would 
probably involve overriding __repr__ as well.

----------
nosy: +belopolsky

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue1692335>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to