You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The random.Random class implements both the __getstate__() and __reduce__() methods. My knowledge of the pickle module is very limited, but apparently this causes __getstate__() never to get called. Maybe this is a remnant from earlier code, or are both methods actually needed?
Ramchandra, that is not the behavior that I am able to reproduce. Please see the attached example: in the presence of __reduce__(), __getstate__() is not being called whether the class or an instance its pickled. This is also in consonance with what is stated in the docs, which warn that "Although powerful, implementing __reduce__() directly in your classes is error prone. For this reason, class designers should use the high-level interface (i.e., __getnewargs__(), __getstate__() and __setstate__()) whenever possible".
Possibly __getstate__ could be removed. That said, I would feel a sense of risk in taking it out -- that method has been present for a *very* long time who knows what might rely on it being there.
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: