Python: Warum sollte ich next() und nicht obj.next()?
Python 2.6 eingeführt next
Funktion.
Warum war dies notwendig? Man könnte immer geben obj.next()
statt next(obj)
.
Ist die letztere mehr pythonic
?
- Ich habe mich immer gefragt, warum der Monty-Python-inspired Python-Sprache das Bedürfnis verspürt, Münze der Begriff "pythonic" statt der natürlichen "Pythonesque".....
- Auch vor der Frage: stackoverflow.com/questions/656155/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
PEP 3114 beschreibt diese änderung. Ein Auszug über die motivation:
Bitte Lesen Sie diese PEP für weitere interessante details.
Als für warum Sie wollen, verwenden Sie die
next
eingebaut: ein guter Grund dafür ist, dass dienext
Methode verschwindet in Python 3, also für die Portabilität ist es besser, beginnen mit dernext
gebaut-in, so bald wie möglich.Erhalten Sie die
default
option.default
parameter an die Methode:obj.next(default)
?next()
Methode existiert nicht mehr. Es wird ersetzt durch__next__()
. Dienext()
Funktion ermöglicht ein einheitliches Verhalten.Abgesehen von der offensichtlichen zusätzlichen Funktionen, es sieht auch besser aus, wenn zusammen verwendet mit generator-Ausdrücke. Vergleichen Sie
zu
Letzteres ist viel mehr im Einklang mit dem rest der Python-Stil, IMHO.
StopIteration
sonst).Enumerable#find
in Ruby zum Beispiel.