In der Dokumentation von defaultdict
gibt es dieses Beispiel:Wie ist Python itertools `constant_factory` Beispiel besser als` Lambda: x`?
>>> def constant_factory(value):
... return itertools.repeat(value).next
als „Eine schnellen und flexiblere Weise konstante Funktionen zu schaffen“.
Wie ist das überlegen
def constant_factory(value):
return lambda : value
?
Beachten Sie, dass natürlich niemand eine Funktion dafür definieren würde ... nur mit (lambda: 42)
ist klarer und kürzer zu tippen als constant_factory(42)
aufrufen.
Für eine konstante Fabrik Schaffung eines wandelbaren Rückkehr, wenn das gesucht ein (lambda x=[]:x)
verwenden könnte (btw das ist, was constant_factory([])
tun würde, aber es ist etwas, das oft zurück beißt ... siehe zum Beispiel this question).
Vielleicht ist die Itertools-Implementierung optimiert und schneller als ein allgemeines Lambda? –