Kapitel 9. Verzierungen und Verschlüsse

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Es gab eine Reihe von Beschwerden über die Wahl des Namens "Dekorator" für diese Funktion. Die wichtigste ist, dass der Name nicht mit seiner Verwendung im GoF-Buch übereinstimmt.1 Der Name " Dekorator" ist wahrscheinlich eher seiner Verwendung im Compilerbereich geschuldet - ein Syntaxbaum wird durchlaufen und mit Anmerkungen versehen.

PEP 318-Dekoratoren für Funktionen und Methoden

Funktionsdekoratoren ermöglichen es uns, Funktionen im Quellcode zu "markieren", um ihr Verhalten auf irgendeine Weise zu verbessern. Das ist eine mächtige Sache, aber um sie zu beherrschen, müssen wir Closures verstehen - das ist das, was wir bekommen, wenn Funktionen Variablen erfassen, die außerhalb ihres Körpers definiert sind.

Das obskurste reservierte Schlüsselwort in Python ist nonlocal, das in Python 3.0 eingeführt wurde. Du kannst ein profitables Leben als Python-Programmierer führen, ohne es jemals zu benutzen, wenn du dich strikt an die klassenorientierte Objektorientierung hältst. Wenn du jedoch deine eigenen Funktionsdekoratoren implementieren willst, musst du Closures verstehen, und dann wird die Notwendigkeit von nonlocal offensichtlich.

Abgesehen von ihrer Anwendung in Dekoratoren sind Closures auch für jede Art von Programmierung, die Rückrufe verwendet, und für die Programmierung im funktionalen Stil unverzichtbar, ...

Get Fließendes Python, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.