test_compare.py

来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Python 代码 · 共 57 行

PY
57
字号
import sysfrom test_support import *class Empty:    def __repr__(self):        return '<Empty>'class Coerce:    def __init__(self, arg):        self.arg = arg    def __repr__(self):        return '<Coerce %s>' % self.arg    def __coerce__(self, other):        if isinstance(other, Coerce):            return self.arg, other.arg        else:            return self.arg, otherclass Cmp:    def __init__(self,arg):        self.arg = arg    def __repr__(self):        return '<Cmp %s>' % self.arg    def __cmp__(self, other):        return cmp(self.arg, other)candidates = [2, 2.0, 2L, 2+0j, [1], (3,), None, Empty(), Coerce(2), Cmp(2.0)]def test():    for a in candidates:        for b in candidates:            try:                x = a == b            except:                print 'cmp(%s, %s) => %s' % (a, b, sys.exc_info()[0])            else:                if x:                    print "%s == %s" % (a, b)                else:                    print "%s != %s" % (a, b)    # Ensure default comparison compares id() of args    L = []    for i in range(10):        L.insert(len(L)//2, Empty())    for a in L:        for b in L:            if cmp(a, b) != cmp(id(a), id(b)):                print "ERROR:", cmp(a, b), cmp(id(a), id(b)), id(a), id(b)test()

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?