2015-02-10 8 views
5

diğer:İki piton nesneleri hem daha büyük ya da daha az, her bir Kesirler sınıf yazıyorum ve karışıklık ederken bu fark

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


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

Bunun nedeni nedir?

+1

Bize hangi işlevin veya daha ziyade sınıfın neye benzediğini gösterir misiniz? – taesu

+0

Kesir uygulamanızın görülmesi ya da aşırı yüklenmeyle ilgili kısımların bulunması iyi olacaktır. – Marcin

+0

'__init__' yönteminiz nedir? Tam minimal kodu bize göstermeye çalışın. –

cevap

3

Basitçe ifade ederseniz, karşılaştırmalarınız doğrudan sınıfın verileri üzerinde değil, sınıfın kendisinin (id (Foo (1))) örneğidir, çünkü karşılaştırmaları açıkça yazmamışsınızdır.

Örneklerin kimliğini karşılaştırır, bu nedenle bazen doğrudur ve diğer zamanlarda yanlıştır.

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

Daha fazlasını açıklar mısınız. Neden Foo (5)> Foo (2) 'yi çalıştırırsam, False vereceğimi anlayamıyorum ve daha sonra aynı testi tekrar çalıştırdığımda Foo (5)> Foo (2)' yi True verecek mi? – Marcin

+0

Sizin Droonkid

+0

Biliyorum ama bu id farklı, ama her seferinde karşılaştırma neden farklı? – Droonkid

İlgili konular