Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个python对象都大于或小于彼此_Python_Oop_Python 2.7 - Fatal编程技术网

两个python对象都大于或小于彼此

两个python对象都大于或小于彼此,python,oop,python-2.7,Python,Oop,Python 2.7,我正在写一节分数课,在闲逛时我注意到: >>> class Test: def __init__(self): pass >>> Test()>Test() True >>> Test()>Test() False 这是为什么?简单地说,您的比较不是直接针对类的数据,而是针对类本身的实例(id(Foo(1)),因为您没有明确地编写它的比较 它比较实例的id,因此有时为真,有时为假 Foo(1) =&

我正在写一节分数课,在闲逛时我注意到:

>>> class Test:
    def __init__(self):
        pass


>>> Test()>Test()
True
>>> Test()>Test()
False

这是为什么?

简单地说,您的比较不是直接针对类的数据,而是针对类本身的实例(id(Foo(1)),因为您没有明确地编写它的比较

它比较实例的id,因此有时为真,有时为假

 Foo(1)
=> <__main__.Foo instance at 0x2a5684>
   Foo(1)
=> <__main__.Foo instance at 0x2a571c>
   Foo(1)
Foo(1)
=> 
傅(1)
=> 
傅(1)

你能告诉我们你的函数…或者更确切地说是类是什么样子吗?你的分数实现会很好地看到,或者重载的相关部分。你的
\uuuu init\uu
方法呢?尝试向我们展示完整的最小代码。可能发生的情况是,您要么拥有可比较的mixin,要么它只是比较repr中的字符串。我注意到,同样的行为也适用于这个简单的情况:。它只在2.7中这样工作。在3.4中它甚至不会编译。你能解释一下吗。我不明白为什么如果我运行
Foo(5)>Foo(2)
它会给出False,然后当我再次运行相同的测试
Foo(5)>Foo(2)
它会给出True?你的aI知道,但是id不同,但是为什么每次的比较都不同?当你运行
Foo(1)
时,这会实例化一个Foo类,因此,它可以随时变化。但是,如果您执行
a=Foo(1)
,并以相同的方式使用
a
b
进行比较,您将始终得到相同的结果,b/c没有任何更改,并且您使用相同的idIt引用相同的变量,这似乎是正确的,但我在python引用中找不到任何支持这一点的内容。我看到的最接近的注释是,大多数其他内置类型的对象比较不相等,除非它们是相同的对象;一个对象比另一个对象小还是大的选择是任意的,但在程序的一次执行中是一致的。但是这会专门调用内置函数,并且在python3文档中也有(这在python3中不起作用)