Code: Alles auswählen
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> u'spam' == 'spam'
True
>>> d = {u'spam': 'foo', 'spam': 'bar'}
>>> d
{u'spam': 'bar'}
Code: Alles auswählen
Python 3.1.2 (release31-maint, Sep 17 2010, 20:34:23)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> b'spam' == 'spam'
False
>>> d = {b'spam': 'foo', 'spam': 'bar'}
>>> d
{'spam': 'bar', b'spam': 'foo'}
Code: Alles auswählen
>>> unicode > str
True
Ginge es nach mir, würde ja noch mehr Typsicherheit bestehen, so dass allein schon der Vergleich `1 == 1.0` einen Fehler wegen inkompatibler Typen wirft. Aber damit handelt man sich sicher an anderen Stellen wieder Nachteile ein. Rein mathematisch ist das ja ohnehin korrekt und es würde sicher einige Leute verwirren, wenn sich das ändert. Aber zumindest mal die Einführung eines Basistyps für Zahlen wäre vom Vererbungsprinzip her trotzdem nicht schlecht, finde ich.
//edit: Huch, es gibt ja das `numbers`-Modul... Den Typ `Number` könnte man dann vielleicht mal als Built-in zur Verfügung stellen.