Seite 1 von 1

Verfasst: Donnerstag 9. Dezember 2004, 22:53
von Leonidas
Dookie hat geschrieben:Leonidas spricht da aus eigener Erfahrung ;)
Naja, bei open() kann das gut sein, aber das mit time habe ich in der Mailingliste gelesen, ich habe vorher gar nicht gewusst, dass sowas geht. Man lernt eben immer dazu :)

Wofür kann man operator verwenden? Dort sind doch lauter Funktionen die normalerweise anders genutzt werden, mehr Pythonic, denn sub() aufzurufen scheint mir etwas unpraktisch zu sein.

Verfasst: Donnerstag 9. Dezember 2004, 23:15
von Dookie
operator kann oft ein lambda ersetzen z.B. bei Reduce:

Code: Alles auswählen

from operator import *
fak = lambda n: reduce(mul, xrange(2,n),n)
müsste sonst folgendermassen geschrieben werden:

Code: Alles auswählen

fak = lambda n: reduce(lambda a, b: a * b, xrange(2,n),n)
was 1. nicht so elegant ist und 2. auch noch deutlich langsamer in der Ausführung.
Auch kann man die Funktionen aus Operator z.B. für ein Dictionary mit Rechenoperatoren verwenden:

Code: Alles auswählen

from operator import *
op_dict = {"+" : add, "-" : sub, "*" : mul, "/" : div}
Gruß

Dookie