Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Dekoratoren
Dekoratoren ermöglichen es Ihnen, einfache Modifikationen an aufrufbaren Objekten wie Funktionen, Methoden oder Klassen vorzunehmen. In diesem Tutorial werden wir uns mit Funktionen beschäftigen. Die Syntax
ist äquivalent zu:
Wie Sie vielleicht gesehen haben, ist ein Dekorator nur eine weitere Funktion, die eine Funktion nimmt und eine zurückgibt. Zum Beispiel könnten Sie dies tun:
Dies würde eine Funktion zweimal ausführen.
Sie können auch den Ausgabe ändern
oder den Input ändern
und Überprüfungen durchführen.
Angenommen, Sie möchten die Ausgabe mit einem variablen Betrag multiplizieren. Sie könnten den Dekorator definieren und wie folgt verwenden:
Sie können mit der alten Funktion alles machen, was Sie wollen, sie sogar komplett ignorieren! Fortgeschrittene Dekoratoren können auch die doc-Strings und Argumentzahlen manipulieren. Für einige tolle Dekoratoren besuchen Sie http://wiki.python.org/moin/PythonDecoratorLibrary.
Übung
Erstellen Sie eine Dekorator-Fabrik, die einen Dekorator zurückgibt, der Funktionen mit einem Argument dekoriert. Die Fabrik sollte ein Argument vom Typ annehmen und dann einen Dekorator zurückgeben, der prüft, ob die Eingabe von der richtigen Art ist. Wenn sie falsch ist, sollte sie print("Bad Type") ausgeben (In Wirklichkeit sollte ein Fehler ausgelöst werden, aber Fehlerauslösung ist nicht Teil dieses Tutorials). Schauen Sie sich den Tutorial-Code und die erwartete Ausgabe an, um zu sehen, was gemeint ist, falls Sie verwirrt sind (ich wäre es jedenfalls). Die Verwendung von isinstance(object, type_of_object) oder type(object) könnte hilfreich sein.
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!
