Seite 1 von 2

Verfasst: Donnerstag 6. August 2009, 14:22
von DasIch
HerrHagen hat geschrieben:Ich nehm mal an du hast tuple mit listen verglichen. Deren Vergleich endet jedoch immer negativ (ein tuple ist nunmal keine Liste). Unabhängig ob ein ANY enthalten ist.

Code: Alles auswählen

>>> [3] == (3)
False
Die Aussage mag stimmen trotzdem vergleichst du hier eine Liste mit einer Zahl ;)

Verfasst: Donnerstag 6. August 2009, 14:25
von 4bit
keine ahnung wen oder was dasich meint.

Verfasst: Donnerstag 6. August 2009, 14:28
von HWK
Ein Tupel würde so aussehen:MfG
HWK

Verfasst: Donnerstag 6. August 2009, 14:34
von HerrHagen
@4bit: Die String Methode für den Gleichheitstest gibt nicht False sondern NotImplemented zurück.

Code: Alles auswählen

>>> x = "Test".__eq__(ANY)
>>> x
NotImplemented
Das veranlasst Python dazu, bei der anderen Seite Nachzuschauen:

Code: Alles auswählen

>>> ANY.__eq__("test")
True
Dort kommt ein verwertbares Ergebnis raus, was Python dazu veranlasst dieses zurückzugeben.

Verfasst: Donnerstag 6. August 2009, 14:34
von 4bit
stimmt. wie seltsam.

Code: Alles auswählen

>>> type((3))
<type 'int'>
>>> type((3,))
<type 'tuple'>
>>> 

Verfasst: Donnerstag 6. August 2009, 14:38
von 4bit
@herrhagen
ahso, dann besteht der konflikt nicht. und zweimal notimplemented ist gleich false:

Code: Alles auswählen

>>> [2].__eq__("hi")
NotImplemented
>>> "jo".__eq__([2])
NotImplemented

Verfasst: Donnerstag 6. August 2009, 14:48
von DasIch
4bit hat geschrieben:stimmt. wie seltsam.
Das ist nicht seltsam. Das wäre seltsam:

Code: Alles auswählen

>> (1 < 2)
 > (True, )

Verfasst: Donnerstag 6. August 2009, 14:49
von EyDu
4bit hat geschrieben:ahso, dann besteht der konflikt nicht. und zweimal notimplemented ist gleich false:
Nein, vorher werden noch die IDs verglichen:

Code: Alles auswählen

>>> class Spam(object):
...     pass
...
>>> Spam() == Spam()
False
>>> s = Spam()
>>> s == s
True
4bit hat geschrieben:stimmt. wie seltsam.
Was soll hier jetzt seltsam sein? Irgendwie muss man die Mehrdeutigkeit von "Wert in Klammern" und "Tupel mit einem Element" auflösen.

Verfasst: Donnerstag 6. August 2009, 15:13
von 4bit
hatte an die andere bedeutung der klammern nicht gedacht und beides als tupel gelesen.

Verfasst: Donnerstag 6. August 2009, 15:22
von BlackJack
Welche andere Bedeutung von Klammern? Der einzige seltsame Fall ist ``()``, weil das die einzigen Klammern sind, die ein Tupel erzeugen. Alle anderen Tupel werden durch die *Kommata* erzeugt!