Python比較関数_cmp__

1679 ワード

#!/usr/bin/python



class my_type(object):

    def __init__(self, v): 

        self.value = v 

    def __cmp__(self, v2):

        if self.value > v2.value:

            return 1

        elif self.value == v2.value:

            return 0

        else:

            return -1

 

if __name__ == '__main__':

    a = my_type(3)

    b = my_type(4)

    print a > b

    print cmp(a,b)

直接判断a>b内部、呼び出し_cmp__()、a>bの場合はTrue、そうでない場合はFalseを返します.
cmpを呼び出すと、同じように__が呼び出されます.cmp__()、a>bが1を返す場合、a=bは0を返し、そうでない場合は-1を返す.