While the datetime.date and datetime.datetime classes consistently
handle mixed-type comparison, their subclasses do not:
>>> from datetime import date, datetime, time
>>> d = date.today()
>>> dt = datetime.combine(d, time())
>>> d == dt
False
>>> dt == d
False
>>> class D(date):
... pass
...
>>> class DT(datetime):
... pass
...
>>> d = D.today()
>>> dt = DT.combine(d, time())
>>> d == dt
True
>>> dt == d
False
I think this is due to the premature "optimization" of using memcmp() in
date_richcompare(). |