是否有可能从脚本中重新定义__main__中的__eq__函数?

时间:2015-05-01 12:13:02

标签: python-2.7

我想让__eq__中的__main__函数始终返回True。它应该是这样的:

def __eq__(self, other):
    return True

是否可以编写任何执行此操作的python脚本?所以我想运行这个很酷的脚本,之后我的解释器应该总是返回True当我进行相等比较(直到重启):

1==2
True

1 个答案:

答案 0 :(得分:3)

请注意,问题中的要求并非所有对象将所有比较实现为真实,而 所有对象checkio都会返回这样做。这是一个非常简单的实现:

class Steamroller(object):

    def __eq__(self, other):
        return True

    __lt__ = __gt__ = __ge__ = __le__ = __ne__ = __eq__


def checkio(*dont, **care):
    return Steamroller()

无论您传递给checkio的论据是什么,都会得到Steamroller,而无论您使用它进行比较,它都会return True。参见例如the data model documentation了解有关实施比较的更多信息。