Die Aussage mag stimmen trotzdem vergleichst du hier eine Liste mit einer ZahlHerrHagen 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
wildcards
Ein Tupel würde so aussehen:MfG
HWK
Code: Alles auswählen
(3,)
HWK
@4bit: Die String Methode für den Gleichheitstest gibt nicht False sondern NotImplemented zurück.
Das veranlasst Python dazu, bei der anderen Seite Nachzuschauen:
Dort kommt ein verwertbares Ergebnis raus, was Python dazu veranlasst dieses zurückzugeben.
Code: Alles auswählen
>>> x = "Test".__eq__(ANY)
>>> x
NotImplemented
Code: Alles auswählen
>>> ANY.__eq__("test")
True
stimmt. wie seltsam.
Code: Alles auswählen
>>> type((3))
<type 'int'>
>>> type((3,))
<type 'tuple'>
>>>
@herrhagen
ahso, dann besteht der konflikt nicht. und zweimal notimplemented ist gleich false:
ahso, dann besteht der konflikt nicht. und zweimal notimplemented ist gleich false:
Code: Alles auswählen
>>> [2].__eq__("hi")
NotImplemented
>>> "jo".__eq__([2])
NotImplemented
Das ist nicht seltsam. Das wäre seltsam:4bit hat geschrieben:stimmt. wie seltsam.
Code: Alles auswählen
>> (1 < 2)
> (True, )
Nein, vorher werden noch die IDs verglichen:4bit hat geschrieben:ahso, dann besteht der konflikt nicht. und zweimal notimplemented ist gleich false:
Code: Alles auswählen
>>> class Spam(object):
... pass
...
>>> Spam() == Spam()
False
>>> s = Spam()
>>> s == s
True
Was soll hier jetzt seltsam sein? Irgendwie muss man die Mehrdeutigkeit von "Wert in Klammern" und "Tupel mit einem Element" auflösen.4bit hat geschrieben:stimmt. wie seltsam.
Das Leben ist wie ein Tennisball.
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!