Beschreibung
Die Sprache Phyton hat ihre Popularität aufgrund der Verfügbarkeit von Bibliotheken und der fehlenden Schwierigkeiten bei der Vorbereitung der Arbeitsumgebung und dem Beginn der Programmierung erlangt. Trotz ihrer vielen Vorteile hat diese Sprache viele versteckte Fallstricke, die schwierig sein können, wenn der Benutzer sich ihrer nicht bewusst ist.
Dieses Buch wird Ihnen helfen, das Beste aus Python herauszuholen. Mit realistischen Beispielen führt der Autor in die Feinheiten und wenig bekannten Redewendungen ein, die das Verhalten und die Leistung des Codes beeinflussen. Der Leser lernt die wichtigsten Themen der Python-Sprache kennen, wie zum Beispiel: Funktionen, Klassen, Vererbung, Metaklassen oder Attribute. Darüber hinaus lernt er, wie er den effektivsten Weg wählt, um die beabsichtigten Ergebnisse zu erzielen. Er wird auch lernen, Code zu schreiben, der leicht zu verstehen, zu warten und zu verbessern ist.
Jedes Kapitel enthält detaillierte Beschreibungen der Beispiele in klarer, leicht verständlicher Weise.
Das Buch behandelt folgende Themen:
- Hinweise zu allen wichtigen Bereichen der Python 3.x- und 2.x-Programmierung mit ausführlichen Erklärungen und Beispielen.
- Best Practices zum Erstellen von Funktionen, die Ihre Absicht klar zum Ausdruck bringen, die Wiederverwendung desselben Codes fördern und helfen, Fehler zu vermeiden.
- Diskussion des Themas des richtigen Ausdrucks des Programmverhaltens mit Hilfe von Klassen und Objekten.
- Hinweise zur Vermeidung von Fallstricken bei der Verwendung von Metaklassen und dynamischen Attributen.
- Demonstration eines viel effektiveren Ansatzes für Nebenläufigkeit und Parallelität.
- Präsentation besserer Techniken und Möglichkeiten zur Verwendung integrierter Python-Module.
- Präsentation von Tools und Best Practices, die während der gemeinsamen Arbeit an Projekten verwendet werden.
- Lösungen zum Debuggen, Testen und Optimieren, die zu einer verbesserten Codequalität und -leistung führen.
Inhalt Einführung (11) Danksagungen (15) Über den Autor (17) Kapitel 1. Python-konformes Programmierrezept - Methode 1. Bestimmen Sie, welche Python-Version Sie verwenden (19)
- Methode 2. Verwenden Sie PEP Style 8 (21)
- Methode 3. Unterschiede zwischen den Typen Bytes, Str und Unicode (23)
- Methode 4. Hilfsfunktionen statt komplexer Ausdrücke wählen (26)
- Methode 5: Sequenzen geschickt teilen (29)
- Methode 6. Vermeiden Sie die Verwendung von Start-, End- und Schrittwerten von Indizes in einer einzigen Split-Operation (31)
- Methode 7. Verwenden Sie Zusammenstellungslisten anstelle der Funktionen map () und filter () (33)
- Methode 8. Vermeiden Sie mehr als zwei Ausdrücke in einer zusammengesetzten Liste (35)
- Methode 9. Erwägen Sie die Verwendung eines Ausdrucksgenerators für große Faltlisten (36)
- Methode 10. Bevorzugen Sie enumerate () gegenüber range () (38)
- Methode 11. Verwenden der Funktion zip () zum gleichzeitigen Verarbeiten von Iteratoren (39)
- Manöver 12. Vermeide Else-Blöcke nach For- und While-Schleifen (41)
- Methode 13. Nutzung aller Blöcke in einem Try-Except-Else-Finally-Konstrukt (44)
Kapitel 2. Funktionen (47) - Methode 14. Bevorzugen Sie Ausnahmen gegenüber der Rückgabe von None (47)
- Methode 15. Siehe wie Closures mit dem Gültigkeitsbereich der Variablen interagieren (49)
- Methode 16. Ziehen Sie die Verwendung von Generatoren in Betracht, anstatt Listen zurückzugeben (54)
- Methode 17. Bleiben Sie defensiv, wenn Sie Argumente durchlaufen (56)
- Manöver 18. Reduzieren Sie visuelle Verwirrung mit einer variablen Anzahl von Positionsargumenten 61)
- Methode 19. Optionales Verhalten mit Schlüsselwortargumenten definieren 63
- Manöver 20. Verwenden von None und docstring zum dynamischen Bestimmen von Standardargumenten 66
- Methode 21. Erzwingen Sie die Lesbarkeit des Codes, indem Sie nur Schlüsselwortargumente verwenden (69)
Kapitel 3. Klassen und Vererbung 73 - Methode 22: Bevorzugen Sie Hilfsklassen gegenüber Wörterbüchern und Tupeln (73)
- Methode 23. Akzeptieren Sie für einfache Schnittstellen Funktionen anstelle von Klassen (78)
- Methode 24: Verwenden des @classmethod-Polymorphismus für die Erstellung generischer Objekte
- Methode 25: Master-Klassen-Initialisierung mit Super() (87)
- Methode 26. Verwenden Sie Mehrfachvererbung nur in Hilfsklassen (91)
- Methode 27. Bevorzugen Sie öffentliche Attribute gegenüber privaten 95
- Methode 28. Vererbung von collections.abc in Containern benutzerdefinierter Typen 99
Kapitel 4. Metaklassen und Attribute 105 - Methode 29. Verwenden Sie reguläre Attribute anstelle von Getter- und Setter-Methoden (105)
- Methode 30 Erwägen Sie die Verwendung von @property anstelle von Refactoring-Attributen (109)
- Methode 31. Verwenden Sie Deskriptoren, um von @property dekorierte Methoden wiederzuverwenden (113)
- Methode 32. Verwenden Sie die Methoden __getattr __ (), __getattribute __ () und __setattr __ () für die verzögerten Attribute (117)
- Methode 33: Überprüfen Sie Unterklassen mit Metaklassen 122
- Manöver 34. Bestehende Klassen mit Metaklassen registrieren 124
- Methode 35. Annotation von Klassenattributen mit Metaklassen (128)
Kapitel 5. Gleichzeitigkeit und Parallelität (131) - Methode 36: Verwenden Sie ein Unterprozessmodul, um untergeordnete Prozesse zu verwalten (132)
- Manöver 37. Verwenden Sie Threads für I / O-Sperroperationen, um Parallelismus zu vermeiden Rezept
- Methode 38. Verwenden Sie die Lock-Klasse, um den Race-Status in Threads zu vermeiden (140)
- Methode 39: Verwenden Sie die Warteschlangenklasse, um die Arbeit zwischen Threads zu koordinieren 143
- Manöver 40. Erwägen Sie die Verwendung von Corroutinen, um mehrere Funktionen gleichzeitig auszuführen 150
- Weg 41. Ziehen Sie die Verwendung von concurrent.futures () in Betracht, um echte Parallelität zu erhalten (158)
Kapitel 6. Eingebettete Module (163) - Weg 42. Funktionsdekorateure mit functools.wraps definieren (163)
- Methode 43: Erwägen Sie die Verwendung von contextlib und with zur Wiederverwendung eines try-finally-Konstrukts 166
- Methode 44: Zuverlässige Verwendung von Pickle mit Copyreg 169
- Methode 45. Verwenden Sie beim Umgang mit der Ortszeit das Modul datetime anstelle von time (174)
- Manöver 46. Verwenden Sie Inline-Algorithmen und Datenstrukturen 178
- Methode 47. Wenn Genauigkeit wichtig ist, verwenden Sie das Dezimalmodul (183)
- Weg 48. Wann sollte man nach von der Community entwickelten Modulen suchen? (185)
Kapitel 7. Zusammenarbeit (187) - Methode 49. Erstellen Sie für jede Funktion, Klasse und jedes Modul einen Docstring (187)
- Rezept 50. Verwenden Sie Pakete, um Module zu organisieren und stabile APIs bereitzustellen
- Methode 51. Definieren Sie die Root-Ausnahme, um die aufrufende Komponente von der API 196 zu isolieren
- Weg 52. Sehen Sie, wie Sie den Kreis der Abhängigkeiten 199 durchbrechen können
- Manöver 53. Verwenden Sie virtuelle Umgebungen für isolierte und sich wiederholende Abhängigkeiten 204
Kapitel 8. Produktion (211) - Manöver 54. Erwägen Sie die Verwendung von Code im Modulbereich, um Ihre Bereitstellungsumgebung zu konfigurieren 211
- Weg 55. Verwenden Sie Repr-Textzeichenfolgen, um die Ausgabe zu debuggen
- Weg 56. Alles testen mit unittest (217)
- Methode 57. Erwägen Sie das interaktive Debuggen mit pdb
- Manöver 58. Führen Sie eine Profilerstellung durch, bevor Sie Rezept 222 optimieren
- Methode 59. Verwenden Sie das Tracemalloc-Modul, um die Speichernutzung zu verstehen und Speicherlecks zu erkennen (226)
Index (229) |