Why are timezone aware and naive datetimes not distinct classes?
Roy Smith
roy at panix.com
Fri Mar 8 13:41:27 EST 2013
To make a long (and painful) story short, I've got a (large) list of
datetimes, and was getting some bizarre errors working with it. One of
the things I tried while debugging the problem was verifying that all
the elements of the list were indeed datetimes:
In [59]: set(type(foo) for foo in x)
Out[59]: set([datetime.datetime])
Well, it turns out, one of them was a timezone-aware datetime, and all
the others were naive! I finally figured it out when I tried
max(x)
and got
TypeError: can't compare offset-naive and offset-aware datetimes
So, the question is, WHY aren't aware and naive datetimes separate
classes? They share many attributes and methods, but not all. It seems
like they should both be subclasses of some common BaseDatetime. Was
not splitting them into two classes a deliberate design decision?
More information about the Python-list
mailing list