Auf vielen Websites sehe ich oft Kommentare, dass Code nicht pythonisch ist oder dass es einen pythonischeren Weg gibt, um dasselbe Ziel zu erreichen.
Was bedeutet Python in diesem Zusammenhang? Zum Beispiel, warum ist
while i < someValue:
do_something(list[i])
i += 1
nicht pythonisch während
for x in list:
doSomething(x)
ist pythonisch?
Antworten:
Nutzen Sie die Funktionen der Python-Sprache, um Code zu erstellen, der klar, präzise und wartbar ist.
Pythonic bedeutet Code, der nicht nur die Syntax richtig macht, sondern den Konventionen der Python-Community folgt und die Sprache so verwendet, wie sie verwendet werden soll.
Dies lässt sich vielleicht am einfachsten anhand eines negativen Beispiels erklären, wie im verlinkten Artikel aus den anderen Antworten. Beispiele für unpythonischen Code stammen häufig von Benutzern anderer Sprachen, die anstelle von Python-Programmiermustern wie Listenverständnissen oder Generatorausdrücken versuchen, in Mustern, die in C oder Java häufiger verwendet werden, eine Brechstange zu bilden. Schleifen sind hierfür besonders häufige Beispiele.
Zum Beispiel in Java könnte ich verwenden
In Python können wir versuchen, dies mit while-Schleifen zu replizieren, aber die Verwendung wäre sauberer
Oder sogar ein Generatorausdruck
Wenn also jemand sagt, dass etwas unpythonisch ist, sagt er im Wesentlichen, dass der Code so umgeschrieben werden könnte, dass er besser zum Python-Codierungsstil passt.
Durch Eingabe
import this
über die Befehlszeile erhalten Sie eine Zusammenfassung der Python-Prinzipien. Weniger bekannt ist, dass der Quellcode fürimport this
entschieden und von Natur aus unpythonisch ist! Schauen Sie sich das an, um ein Beispiel dafür zu finden, was Sie nicht tun sollten.quelle