[EMAIL PROTECTED] wrote: >I have a class that has, as an attribute, an instance of > datetime.datetime(). I would like to be able to compare my class > directly to instances of datetime.datetime in addition to other > instances of my class. The value used for the comparison in either > case should be the value of the datetime attribute of the class: > > from datetime import datetime > > class GeneralizedTime(object): > def __init__(self, time=None): > if time is None: > self.datetime = datetime.now() > def __cmp__(self, x): > if isinstance(x, GeneralizedTime): > return cmp(self.datetime, x.datetime) > if isinstance(x, datetime): > return cmp(self.datetime, x) > >>>> import datetime >>>> >>>> GeneralizedTime() > datetime.now() > Traceback (most recent call last): > File "<stdin>", line 1, in ? > TypeError: can't compare datetime.datetime to GeneralizedTime > > Clearly I'm misunderstanding something, here. As I understand my code, > I'm directly comparing an instance of datetime (self.datetime) to > another instance of datetime.
sure looks like you're comparing a datetime instance against a GeneralizeTime instance to me. why not just inherit from datetime instead? or read footnote 4 under "supported operations" on this page for info on how to implement mixed-type comparisions: http://docs.python.org/lib/datetime-datetime.html </F> -- http://mail.python.org/mailman/listinfo/python-list