Serhiy Storchaka added the comment:
Now pickling of the datetime.datetime objects is implemented with
__reduce_ex__. __reduce__ is not defined in datetime.datetime and is inherited
from datetime.date.
>>> datetime.datetime.__reduce_ex__
<method '__reduce_ex__' of 'datetime.datetime' objects>
>>> datetime.datetime.__reduce__
<method '__reduce__' of 'datetime.date' objects>
__reduce_ex__ has higher priority and is called instead of __reduce__. It is
weird that __reduce_ex__ and __reduce__ are not consistent. __reduce__ should
be defined as
def __reduce__(self):
return self.__reduce_ex__(2)
or just
__reduce__ = object.__reduce__
Other way is to define __reduce_ex__ instead of __reduce__ in datetime.date.
----------
components: +Extension Modules
nosy: +belopolsky, serhiy.storchaka
type: -> behavior
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue28752>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com