[New-bugs-announce] [issue41547] Expose default __getstate__ and __setstate__

youkaichao report at bugs.python.org
Fri Aug 14 00:57:50 EDT 2020


New submission from youkaichao <youkaichao at gmail.com>:

According to the doc ( https://docs.python.org/3/library/pickle.html#object.__getstate__ ), an object may not have a __getstate__ method.

During pickling and unpickling, python first finds __getstate__ and __setstate__, which may invoke a customed __getattr__. I think this is unnecessary if python just provides a default implementation for __getstate__ / __setstate__ . An additional benefit of this is that __setstate__ and __getstate__ becomes available for every object and it is possible to do something like ``getstate(obj)``.

For people who customize __getattr__, I think no one intends to deal with ``obj.__getattr__(“__getstate__”)``, so it makes sense not to invoke ``__getattr__`` during pickling and unpickling.

----------
messages: 375369
nosy: youkaichao
priority: normal
severity: normal
status: open
title: Expose default __getstate__ and __setstate__
type: behavior

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue41547>
_______________________________________


More information about the New-bugs-announce mailing list