加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

重写__cmp__ python函数

发布时间:2020-12-20 12:21:04 所属栏目:Python 来源:网络整理
导读:嗨,我正在重写__cmp__.如果传递的第二个对象是None,或者它不是someClass的实例,则返回-1. 我不明白这里到底发生了什么. class someClass(): def __cmp__(self,obj): if obj == None: return -1 if not isinstance(obj,someClass): return -1 我的测试功能:
嗨,我正在重写__cmp__.如果传递的第二个对象是None,或者它不是someClass的实例,则返回-1.

我不明白这里到底发生了什么.

class someClass():
    def __cmp__(self,obj):
        if obj == None:
            return -1
        if not isinstance(obj,someClass):
            return -1

我的测试功能:

def test_function(self):  
        obj1 = someClass()
        self.assertTrue(obj1 < None)
        # I get true.
        self.assertTrue(obj1 > None)
        # I get failure as False is returned.

有人可以向我解释一下:

>什么是回报值?
>当比较符号发生变化时,如何判断它是返回True还是False?

解决方法

当obj为None时,程序将返回-1,而返回负整数则表示self< obj,所以obj1<没有是真的,obj1>没有是假的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读