
Und in gewisser Weise sage ich es ja auch, und auch einige andere, nämlich immer dann, wenn ein Neueinsteiger fragt, womit er anfangen soll, und als Antwort bekommt, doch lieber erst einmal bei der "noch nützlicheren" 2er-Reihe zu bleiben.
Also ich finde das implementieren dieser Sachen irgendwie einfacher, weil mir dieses -1/0/1 bei ``cmp()`` sowieso nie gefallen hat.BlackJack hat geschrieben:Gerade bei dem Argument "einfacher geworden" stösst mir der Wegfall von `cmp()` sauer auf. Um das gleiche Verhalten wie beim alten `__cmp__()` zu bekommen, muss ich jetzt plötzlich `__eq__()` und `__neq__()` und `__lt__()` und `__gt__()` implementieren.
Code: Alles auswählen
class OldStyleCmp:
def __eq__(self, other):
return self.__cmp__(other) == 0
def __neq__(self, other):
return self.__cmp__(other) != 0
def __lt__(self, other):
return self.__cmp__(other) < 0
def __gt__(self, other):
return self.__cmp__(other) > 0
class Parent:
pass
class Child(Parent, OldStyleCmp):
def __cmp__(self, other):
return 0
print(Child() == Child())
Code: Alles auswählen
def __cmp__(self, other):
return cmp((self.a, self.b), (other.a, other.b))
ist das nicht oldstable?Pascal hat geschrieben:es gibt bestimmt auch mehrere, die mit 2 Versionen arbeiten.
ich muss ich der Schule 2.4 nutzen, zu Hause nehme ich 2.6
Dementsprechend muss ich ja nur ``__eq__`` und ``__lt__`` implementieren, oder?python 3 what's new hat geschrieben:The cmp() function should be treated as gone, and the __cmp__() special method is no longer supported. Use __lt__() for sorting, __eq__() with __hash__(), and other rich comparisons as needed. (If you really need the cmp() functionality, you could use the expression (a > b) - (a < b) as the equivalent for cmp(a, b).)
Oder -zeitliches, an der Komplexität scheiterndes- Unvermögen. Also, was die Module angeht, die ich meistens benutze (numpy, scipy, etc.) gibt es so viele C-Abhängigkeiten, dass es einfach noch eine ganze Weile dauern wird - und das ist auch in der Community bekannt. Und was die meisten Leute anbelangt (mich eingeschlossen): Sie können da kaum helfen (zu wenig Zeit, zu komplexer Code, zu viel fremder Code zum Einarbeiten).Pekh hat geschrieben:Ein solches Verhalten würde meines Erachtens nur dann Sinn machen, wenn man es auch bekanntgibt. Ansonsten sieht es einfach aus wie naja Bequemlichkeit und / oder Langsamkeit.
Eben. Ein Boykott durch Nicht-Umstieg würde überhaupt nicht auffallen und somit seine Wirkung verfehlen. Wenn man boykottiert, muß man es schon an irgendeiner Stelle sagen. Gerade dann, wenn es auch eine Vielzahl von anderen Gründen für die "Verzögerung" geben könnte. Aber wie gesagt: Mir ist noch nichts dergleichen unterkommen - allerdings bin ich auf den entsprechenden Seiten auch eher selten unterwegs.CM hat geschrieben:Oder -zeitliches, an der Komplexität scheiterndes- Unvermögen. Also, was die Module angeht, die ich meistens benutze (numpy, scipy, etc.) gibt es so viele C-Abhängigkeiten, dass es einfach noch eine ganze Weile dauern wird - und das ist auch in der Community bekannt. Und was die meisten Leute anbelangt (mich eingeschlossen): Sie können da kaum helfen (zu wenig Zeit, zu komplexer Code, zu viel fremder Code zum Einarbeiten).Pekh hat geschrieben:Ein solches Verhalten würde meines Erachtens nur dann Sinn machen, wenn man es auch bekanntgibt. Ansonsten sieht es einfach aus wie naja Bequemlichkeit und / oder Langsamkeit.