比较Python中的类实例

use*_*865 0 python

我在python中建立了一个新类,它用6位数字定义时间(例如18:45:00)

class Time(object):

    def __init__(self, hour, minute, second):
        minute = minute + second / 60
        hour = hour + minute / 60        
        self.hour = hour % 24
        self.minute = minute % 60
        self.second = second  % 60
Run Code Online (Sandbox Code Playgroud)

我还定义了许多方法来使其正常工作。我遇到的问题是 cmp 方法:

def __cmp__(self,other):
    return cmp(self.to_seconds(),other.to_seconds())
Run Code Online (Sandbox Code Playgroud)

当我尝试比较时间时它工作得很好,如果我对时间列表进行排序它也工作得很好。但是,如果我尝试对时间和整数或字符串列表进行排序,它也可以工作。我如何将其定义为仅比较时间,并在尝试将时间与其他时间进行比较时引发错误。

Sta*_*ven 5

您可以使用isinstance()来查看参数是否是某个类的实例。请参阅文档