Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Impressum Einleitung Über den Autor Danksagungen Kapitel 1: Pythons Sicht der Dinge
Punkt 1: Kenntnis der Python-Version‌ Punkt 2: Stilregeln gemäß PEP 8 Punkt 3: Unterschiede zwischen bytes und str Punkt 4: Interpolierte F-Strings statt C-Formatierungsstrings und str.format Punkt 5: Hilfsfunktionen statt komplizierter Ausdrücke Punkt 6: Mehrfachzuweisung beim Entpacken statt Indizierung Punkt 7: enumerate statt range Punkt 8: Gleichzeitige Verarbeitung von Iteratoren mit zip Punkt 9: Verzicht auf else-Blöcke nach for- und while-Schleifen Punkt 10: Wiederholungen verhindern durch Zuweisungsausdrücke
Kapitel 2: Listen und Dictionaries
Punkt 11: Zugriff auf Listen durch Slicing Punkt 12: Verzicht auf Abstand und Start-/Ende-Index in einem einzigen Ausdruck Punkt 13: Vollständiges Entpacken statt Slicing Punkt 14: Sortieren nach komplexen Kriterien mit dem key-Parameter Punkt 15: Vorsicht bei der Reihenfolge von dict-Einträgen Punkt 16: get statt in und KeyError zur Handhabung fehlender Dictionary-Schlüssel verwenden Punkt 17: defaultdict statt setdefault zur Handhabung fehlender Objekte verwenden Punkt 18: Schlüsselabhängige Standardwerte mit __missing__ erzeugen
Kapitel 3: Funktionen
Punkt 19: Bei Funktionen mit mehreren Rückgabewerten nicht mehr als drei Variablen entpacken Punkt 20: Exceptions statt Rückgabe von None Punkt 21: Closures und der Gültigkeitsbereich von Variablen Punkt 22: Klare Struktur dank variabler Anzahl von Positionsargumenten Punkt 23: Optionale Funktionalität durch Schlüsselwort-Argumen‌te Punkt 24: Dynamische Standardwerte von Argumenten mittels None und Docstrings Punkt 25: Eindeutigkeit durch reine Schlüsselwort- und reine Positionsargumente Punkt 26: Funktions-Decorators mit functools.wraps definieren
Kapitel 4: Listen-Abstraktionen und Generatoren
Punkt 27: Listen-Abstraktionen statt map und filter Punkt 28: Nicht mehr als zwei Ausdrücke in Listen-Abstraktionen Punkt 29: Doppelte Arbeit in Abstraktionen durch Zuweisungsausdrücke vermeiden Punkt 30: Generatoren statt Rückgabe von Listen Punkt 31: Vorsicht beim Iterieren über Argumente Punkt 32: Generatorausdrücke für umfangreiche Listen-Abstraktionen verwenden Punkt 33: Mehrere Generatoren mit yield from verknüpfen Punkt 34: Keine Datenübermittlung an Generatoren mit send Punkt 35: Zustandsübergänge in Generatoren mit throw vermeiden Punkt 36: Iteratoren und Generatoren mit itertools verwenden
Kapitel 5: Klassen und Schnittstellen
Punkt 37: Klassen statt integrierte Datentypen verschachteln Punkt 38: Funktionen statt Klassen bei einfachen Schnittstellen Punkt 39: Polymorphismus und generische Erzeugung von Objekten Punkt 40: Initialisierung von Basisklassen durch super Punkt 41: Verknüpfte Funktionalität mit Mix-in-Klassen Punkt 42: Öffentliche statt private Attribute Punkt 43: Benutzerdefinierte Container-Klassen durch Erben von collections.abc
Kapitel 6: Metaklassen und Attribute
Punkt 44: Einfache Attribute statt Getter- und Setter-Methoden Punkt 45: @property statt Refactoring von Attributen Punkt 46: Deskriptoren für wiederverwendbare @property-Methoden verwenden Punkt 47: Verzögerte Zuweisung zu Attributen mittels __getattr__, __getattribute__ und __setattr__ Punkt 48: Unterklassen mit __init_subclass__ überprüfen Punkt 49: Klassen mittels __init_subclass__ registrieren Punkt 50: Zugriff auf Klassenattribute mit __set_name__ Punkt 51: Klassen-Decorators statt Metaklassen für Klassenerweiterungen nutzen
Kapitel 7: Nebenläufigkeit und parallele Ausführung
Punkt 52: Verwaltung von Kindprozessen mittels subprocess Punkt 53: Threads, blockierende Ein-/Ausgabevorgänge und parallele Ausführung Punkt 54: Wettlaufsituationen in Threads mit Lock verhindern Punkt 55: Threads koordinieren mit Queue Punkt 56: Erkennen, wann parallele Ausführung erforderlich ist Punkt 57: Keine neuen Thread-Instanzen beim Fan-Out Punkt 58: Die Verwendung von Queue zur parallelen Ausführung erfordert Refactoring Punkt 59: ThreadPoolExecutor zur parallelen Ausführung verwenden Punkt 60: Parallele Ausführung mehrerer Funktionen mit Coroutinen Punkt 61: asyncio statt threaded I/O Punkt 62: Threads und Coroutinen verwenden, um die Umstellung auf asyncio zu erleichtern Punkt 63: asyncio-Event-Loop nicht blockieren Punkt 64: Echte parallele Ausführung mit concurrent.futures
Kapitel 8: Robustheit und Performance
Punkt 65: Alle Blöcke einer try/except/else/finally-Anweisung nutzen Punkt 66: contextlib und with-Anweisung für wiederverwendbares try/finally-Verhalten verwenden Punkt 67: Für örtliche Zeitangaben datetime statt time verwenden Punkt 68: Verlässliches pickle durch copyreg Punkt 69: Falls Genauigkeit an erster Stelle steht, decimal verwenden Punkt 70: Vor der Optimierung Messungen vornehmen Punkt 71: deque für Erzeuger-Verbraucher-Warteschlangen verwenden Punkt 72: Durchsuchen von Sequenzen geordneter Elemente mit bisect Punkt 73: heapq für Prioritätswarteschlangen verwenden Punkt 74: memoryview und bytearray für Zero-Copy-Interaktionen mit bytes verwenden
Kapitel 9: Testen und Debuggen
Punkt 75: Debuggen mit repr-Strings Punkt 76: Ähnliches Verhalten mit TestCase-Unterklassen überprüfen Punkt 77: Tests mit setUp, tearDown, setUpModule und tearDownModule voneinander abschotten Punkt 78: Mocks für Tests von Code mit komplexen Abhängigkeiten verwenden Punkt 79: Abhängigkeiten kapseln, um das Erstellen von Mocks und Tests zu erleichtern Punkt 80: Interaktives Debuggen mit pdb Punkt 81: Nutzung des Arbeitsspeichers und Speicherlecks mit tracemalloc untersuchen
Kapitel 10: Zusammenarbeit
Punkt 82: Module der Python-Community Punkt 83: Virtuelle Umgebungen zum Testen von Abhängigkeiten Punkt 84: Docstrings für sämtliche Funktionen, Klassen und Module‌ Punkt 85: Pakete zur Organisation von Modulen und zur Bereitstellung stabiler APIs verwenden Punkt 86: Modulweiter Code zur Konfiguration der Deployment-Umgebung Punkt 87: Einrichten einer Root-Exception zur Abschottung von Aufrufern und APIs Punkt 88: Zirkuläre Abhängigkeiten auflösen Punkt 89: warnings für Refactoring und Migration verwenden Punkt 90: Statische Analyse mit typing zum Vermeiden von Bugs
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion