Michael Foord <mich...@voidspace.org.uk> added the comment: So, changing copyreg.py to use type(self) instead of self.__class__ isn't sufficient. _pickle accesses __class__ as well it seems. However I'm running all tests with this change in place to see if it breaks intended behaviour:
Python 3.3.0a1+ (default:51016ff7f8c9, Mar 26 2012, 13:15:33) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import pickle as p [70240 refs] >>> class Foo(object): ... __class__ = property(lambda s: int) ... [70290 refs] >>> Foo().__class__ <class 'int'> [70294 refs] >>> p.dumps(Foo()) Traceback (most recent call last): File "<stdin>", line 1, in <module> _pickle.PicklingError: args[0] from __newobj__ args has the wrong class ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue14577> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com