wildcards

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

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 ;)
4bit
User
Beiträge: 113
Registriert: Dienstag 5. Mai 2009, 11:27

keine ahnung wen oder was dasich meint.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Ein Tupel würde so aussehen:MfG
HWK
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

@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.
4bit
User
Beiträge: 113
Registriert: Dienstag 5. Mai 2009, 11:27

stimmt. wie seltsam.

Code: Alles auswählen

>>> type((3))
<type 'int'>
>>> type((3,))
<type 'tuple'>
>>> 
4bit
User
Beiträge: 113
Registriert: Dienstag 5. Mai 2009, 11:27

@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
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

4bit hat geschrieben:stimmt. wie seltsam.
Das ist nicht seltsam. Das wäre seltsam:

Code: Alles auswählen

>> (1 < 2)
 > (True, )
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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.
Das Leben ist wie ein Tennisball.
4bit
User
Beiträge: 113
Registriert: Dienstag 5. Mai 2009, 11:27

hatte an die andere bedeutung der klammern nicht gedacht und beides als tupel gelesen.
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!
Antworten