Bildverlinkung geniest die freundliche Genehmigung des O'Reilly-Verlages.
  • Authoren: Alex Martelli, Anna Martelli Ravenscroft, David Ascher
  • Verlag: O'Reilly
  • Ausgabe: 2nd Edition 2005
  • Sprache: englisch
  • Umfang: 807 Seiten
  • ISBN: 0596007973

„Python Cookbook“

rezensiert von
Torsten Hinze




Vorwort
Python ist eine sehr klare und konsequente Sprache, die sowohl objektoriente als auch funktionale Programmierung ermöglicht. Eines der Hauptmerkmale dieser Sprache ist die Klarheit des Codes. Python-Programme lassen sich meißt sehr leicht lesen und sind eindeutig strukturiert. Zudem ist der Funktionsumfang (build-in) sehr überschaubar und doch leistungsfähig.
Hierzu gesellen sich dann noch so wichtige Eigenschaften wie verständliche/aussagekräftige Fehlermeldungen (Tracebacks), hohe Ausführungsgeschwindigkeit und hohe Verfügbarkeit auf unterschiedlichsten Hardware-Plattformen. Kurzum eine sehr gute Sprache mit der man Spaß am Programmieren haben kann und wird.

Dieses Buch gibt dabei keine Einführung in Python, sondern möchte Rezepte für alltägliche Programmierprobleme geben. Die Grundlage dieser Rezepte und somit auch den Großteil dieses Buches machen dabei Beiträge aus der Python-Community aus. Diese lieferten die Grundlage für die offerierten Lösungen durch ausgiebige Diskussionen, Reviews und Tests. Somit ist das vermittelte Wissen nicht auf dem „Mist“ eines Einzelnen gewachsen, sondern enstammt den Köpfen sehr vieler aktiver Programmierer. Dies erhöht den Wert der Lösungen deutlich und zahlt sich durch Geschwindigkeit und Stabilität aus.



zum Inhalt
Hat man den Schritt zum Python-Programmieren vollzogen und einige Programme verfasst, so wird man mit Sicherheit an bestimmten Stellen auf Probleme stoßen. Dies betrifft nicht Python selbst, sondern die Art der Implementierung einer gewünschten Funktion. Als Problemmerkmal kann dabei das Auftreten von Fehlern oder auch die Ausführungsgeschwindigkeit in Frage kommen.
Dieses Cookbook möchte für die gängigsten Anwendungsgebiete praktische und praxis-geprüfte Lösungen anbieten. Dabei greift es wie bereits beschrieben auf das Wissen und die Erfahrung vieler Python-Coder zurück, die im Laufe der Zeit immer neue Rezepte einbrachten und weiterentwickelten.

Das Buch unterteilt sich in 20 Kapitel, die jeweils einem Themengebiet gewidmet sind. Im Einzelnen sind dies die Bereiche:
1) Text
2) Files
3) Time & Money
4) Python Shortcuts
5) Searching and Sorting
6) Object-Oriended Programming
7) Persistence and Databases
8) Debugging & Testing
9) Processes, Threads, and Synchronization
10) System Administration
11) User Interfaces
12) Processing XML
13) Network Programming
14) Web Programming
15) Distributed Programming
16) Programs About Programs
17) Extending and Embedding
18) Algorithms
19) Iterators and Generators
20) Descriptors, Decorators, and Metaclasses


In jedem dieser Kapitel werden typische und praxisnahe Problemstellungen erörtert. Dabei wird zunächst das Problem dargestellt um anschließend die relevanten Lösungswege zu diskutieren. Hier findet der geneigte Leser auch den Hauptteil des Wissens dieses Buches. Durch die ausgiebigen Erläuterungen (Discussions) zu den verschiedenen Lösungsansätzen, erkennt der Leser wo Gefahren lauern, welche typischen Fehler man machen kann und wie es gelingt das Potenzial von Python zu nutzen, um die Aufgabe effektiv zu lösen.

Sehr positiv ist dabei die Durchleuchtung nicht nur einer Variante, sondern verschiedener Lösungsideen. In genau diesen Diskussionen zu Lösungen steckt die Kraft dieses Buches. Sicher kann man nicht annähernd alle möglichen Problemstellungen erörtern die es im Programmieralltag gibt. Jedoch schafft es dieses Buch anhand wichtiger Themengebiete und Problemstellungen dem Leser sehr umfangreiches Basiswissen über die Python-Internas zu vermittelt.

Zusätzlich werden einige Zusatzmodule erläutert, die helfen eigene Programme übersichtlicher und kompakter zu gestalten. Außerdem bieten einige dieser Module bereits selbst lösungen für bekannte Probleme (unabhängig von Python). Als Beispiel möchte ich die Erläuterung des Moduls decimal nennen. Nach dem Durchlesen weiß wan 1. dass die interne Abbildung einer Dezimalzahl nur ein Näherungswert ist (denn 5.9 wird intern durch 5.9000000000000004 repräsentiert) und bekommt 2. durch das Modul selbst die Lösung gezeigt, wie man aritmetisch korrekte Berechnungen durchführen kann. Sehr praktisch.

Es sollte hier angemerkt sein, dass das Buch bekanntlich in Englisch verfasst ist. Das kann das Auffassen von Inhalten erschweren. Jedoch empfandt ich das verwendete Englisch nicht als besonders schwer, auch wenn ich eher weniger gute Sprachbegabung besitze. Sicher schlägt man den einen oder anderen Begriff nach oder versteht die eine oder andere umgangssprachliche Floskel nicht, jedoch liest sich das Buch sehr gut und ist trotzdem gut verständlich.



Fazit
Ich selbst war bisher eher skeptisch was Cookbook's anging, da ich die begrenzte Auswahl an Problemstellungen nicht für praxis-abdeckend hielt. Das ist vermutlich auch so, jedoch kann man bei der Auswahl an Aufgaben für ein Buch auch ein glückliches Händchen beweisen. Dies ist bei diesem Buch auf jeden Fall passiert. Neben der Auswahl der Themen und der Beispiele sind es aber die ausgiebigen Diskussionen zu den möglichen Lösungswegen, die dem Leser das "Wissen" vermitteln.
Die erklärten Zusatzmodule liefern zusätzliches Basiswissen und zeigen bestehende Lösungen für immer wiederkehrende Problemstellungen.

Neben praktischen Lösungen bekommt man als Wissen-Suchender noch sehr viele Python-Internas und eine Menge Know-How geliefert. Somit eigenet sich dieses Buch auch als direkte Nachfolge-Literatur zum Python-Einstieg, da zwar keine Einführung in Python geboten wird, jedoch durch die Auseinandersetzung mit verschiedensten Lösungen wichtiges Grundwissen vermittelt wird. Kein Python-Einsteiger sollte auf solch hilfreiche Tips verzichten.

Wenn ich also ein Cookbook empfehlen dürfte, das über die Darbietung reiner Lösungsvorschläge hinausgeht, so kann ich dieses Buch mit ruhigem Gewissen anführen. Wer es kauft, wird diese Entscheidung nicht bereuen.

Torty
Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!