Praktische Tipps für Fortgeschrittene
E-Book, Deutsch, 210 Seiten
ISBN: 978-3-96088-600-6
Verlag: dpunkt
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Um den größten Nutzen aus diesem Buch zu ziehen, solltest du bereits über Python-Kenntnisse verfügen, die du erweitern möchtest. Am besten ist es, wenn du schon eine Weile in Python programmierst und bereit bist, in die Tiefe zu gehen, deine Kenntnisse abzurunden und deinen Code pythonischer zu machen.
Wenn du dich fragst, welche weniger bekannten Teile in Python du kennen solltest, gibt dir dieses Buch eine Roadmap an die Hand. Entdecke coole und gleichzeitig praktische Python-Tricks, mit denen du beim nächsten Code Review der Hit bist.
Wenn du Erfahrung mit älteren Versionen von Python hast, wird dich das Buch mit modernen Mustern und Funktionen vertraut machen, die in Python 3 eingeführt wurden.
Dieses Buch ist aber auch hervorragend für dich geeignet, wenn du schon Erfahrungen mit anderen Programmiersprachen hast und dich schnell in Python einarbeiten möchtest. Du wirst hier einen wahren Schatz an praktischen Tipps und Entwurfsmustern finden, die dir helfen, ein erfolgreicher Python-Programmierer zu werden.
Weitere Infos & Material
3Effektive Funktionen
3.1Pythons Funktionen sind erstklassig
Bei Python-Funktionen handelt es sich um Objekte erster Klasse. Du kannst sie Variablen zuweisen, in Datenstrukturen speichern, als Argumente an andere Funktionen übergeben und sogar als Werte von anderen Funktionen zurückgeben lassen. Ein intuitives Verständnis dieser Möglichkeiten macht es viel einfacher, sich mit anspruchsvolleren Python-Elementen wie Lambda-Funktionen und Dekoratoren vertraut zu machen. Es bringt dich auch auf den Weg zur Anwendung funktionaler Programmiertechniken. Auf den folgenden Seiten stelle ich eine Reihe von Beispielen vor, mit deren Hilfe du ein solches intuitives Verständnis entwickeln kannst. Da die einzelnen Beispiele aufeinander aufbauen, solltest du sie in der angegebenen Reihenfolge lesen. Probiere sie auch in einer Session mit dem Python-Interpreter aus, während du den Erklärungen folgst. Es kann dich ein bisschen Zeit kosten, die hier vorgestellten Prinzipien zu verinnerlichen. Mache dir deswegen aber keine Sorgen, denn das ist völlig normal. Mir ist es genauso gegangen. Manchmal hatte ich das Gefühl, als käme ich nicht weiter, und dann machte es plötzlich klick, und alles ergab Sinn. In diesem Abschnitt verwende ich zur Veranschaulichung die Funktion yell. Es handelt sich um eine einfache Beispielfunktion mit einer leicht wiedererkennbaren Ausgabe: def yell(text): return text.upper() + '!' >>> yell('hello') 'HELLO!' Funktionen sind Objekte Alle Daten in einem Python-Programm werden durch Objekte oder Beziehungen zwischen Objekten dargestellt.1 Strings, Listen, Module und Funktionen sind Objekte. In Python sind auch Funktionen nichts Besonderes, sondern einfach Objekte. Da die Funktion yell in Python ein Objekt ist, kannst du sie wie jedes andere Objekt einer Variablen zuweisen: >>> bark = yell In dieser Zeile wird die Funktion nicht aufgerufen. Stattdessen wird hier der neue Name bark erstellt, der auf das Funktionsobjekt zeigt, auf das yell verweist. So kannst du dasselbe zugrunde liegende Funktionsobjekt jetzt auch dadurch ausführen, dass du bark aufrufst: >>> bark('woof') 'WOOF!' Funktionsobjekte und ihre Namen sind zwei verschiedene Dinge. Wenn du etwa den ursprünglichen Namen der Funktion löschst (yell), zeigt der alternative Name (bark) nach wie vor auf die zugrunde liegende Funktion, sodass du diese dadurch nach wie vor aufrufen kannst: >>> del yell >>> yell('hello?') NameError: "name 'yell' is not defined" >>> bark('hey') 'HEY!' Wenn eine Funktion erstellt wird, verknüpft Python sie zu Debuggingzwecken mit einer ID in Stringform. Diese interne ID kannst du mit dem Attribut __name__ abrufen:2 >>> bark.__name__ 'yell' Der interne Funktionsname in __name__ ist zwar nach wie vor yell. Das hat aber keine Bedeutung dafür, wie du im Code auf das Funktionsobjekt zugreifst. Diese ID ist lediglich eine Hilfe für das Debugging. Eine Variable, die auf eine Funktion zeigt, und die Funktion selbst sind zwei völlig verschiedene Dinge. Funktionen in Datenstrukturen speichern Da Funktionen Objekte erster Klasse sind, lassen sie sich wie alle anderen Objekte in Datenstrukturen speichern. So kannst du sie unter anderem einer Liste hinzufügen: >>> funcs = [bark, str.lower, str.capitalize] >>> funcs [