Du hast Fragen? Wir haben Antworten! - Bald findet unser nächster Tag der offenen Tür statt!

Logo site

Python Dekorateure: Tipps für Fortgeschrittene

-
2
 Minuten Lesezeit
-
python dekorateure

Wenn du Machine Learning mit Python betreibst, brauchst du nicht unbedingt alle Eigenschaften dieser Sprache: scikit-learn, numpy und pandas sind sehr gut entwickelt und erfordern nicht viel mehr als Grundlagen der objektorientierten Programmierung und ein wenig methodisches Geschick.

Allerdings besteht die Arbeit des Data Scientists manchmal darin, APIs zu erstellen, um auf ein Modell oder Daten zuzugreifen. Bei uns ist dafür der Data Engineer zuständig, aber in vielen Organisationen ist der Data Scientist dafür zuständig. Ein Unternehmen wie Amazon erstellt zum Beispiel alle seine Funktionen in Form von APIs. Es ist daher unerlässlich, sich neben Kenntnissen über Machine Learning, Deep Learning, Data Visualization und verschiedene statistische Techniken zur Datenexploration auch mit APIs vertraut zu machen.

Um nicht auf seine Lieblingssprache verzichten zu müssen, wird der Data Scientist dann natürlich auf Flask zurückgreifen. Das ist die Technologie, die wir in unserem Data-Engineering-Kurs in den Vordergrund stellen.

Flask ist schön und gut, aber...

Wenn du die Syntax einmal verstanden hast, ist Flask sehr einfach zu benutzen. Aber wenn du es zum ersten Mal benutzt, wirst du mit dieser Art von Code konfrontiert:

Diese @app.route direkt aus der Hölle, die dein gesamtes Verständnis von Python in Frage stellt…

Die Dekorateure

Dieses @ wird in Python verwendet, um einen Dekorateur einzuführen (und nein, er ist nicht einfach nur da, um schön auszusehen…). Es steht direkt vor einer Funktion und ermöglicht es, die Funktion in eine andere Funktion, den sogenannten Wrapper, einzuwickeln (wrap).

Wenn ich also eine Funktion erstellen möchte, die die Zeit misst und anzeigt, die eine Funktion benötigt, um zu laufen, kann ich sie wie folgt implementieren:

Diese Funktion nimmt eine Funktion als Argument (function, wie der Name schon sagt), definiert darin eine neue Funktion (timed_function) und gibt die neue Funktion zurück.

Wenn ich also einen Dekorateur benutze, kann ich sehen, dass die Zeit am Ende der Ausführung angezeigt wird.

Python Dekorateure sind sehr nützlich, um den Datentyp zu überprüfen und um Informationen über die Funktionsweise der Funktion anzuzeigen, ohne sie in jeder Funktion neu codieren zu müssen. Sie werden vor allem in Flask verwendet, aber auch in vielen Quellcodes unserer Lieblingsbibliotheken: ein Beispiel, ein anderes und ein drittes für unterwegs.

Gehen wir einen Schritt weiter ...

Als ich das gesehen habe, habe ich mir ein paar Fragen gestellt (und nicht nur, ob es nützlich ist).

Kann man Argumente an den Python Dekorateur übergeben und nicht an die dekorierte Funktion? Ja, aber die Syntax ist etwas komplizierter:

Kann man Python Dekorateure aneinanderreihen? Kein Problem:

Kann man Methoden dekorieren? Ja

Kann man Klassen dekorieren? Ja

Ein Klassendekorateur?

Dekorateure sind ein ziemlich interessantes Werkzeug. Sie scheinen auf den ersten Blick überraschend zu sein, aber wenn du erst einmal verstanden hast, wie sie funktionieren, kannst du dir die Arbeit erleichtern. Du wirst ihnen nicht jeden Tag begegnen, aber wenn es doch passiert, dann bist du vorbereitet.

Hat dir dieser Artikel gefallen? Dann melde dich für unseren Newsletter an und erhalte Datentipps, die du sonst nirgends findest!

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!
icon newsletter

DataNews

Starte Deine Karriere im Bereich Data: Erhalte regelmäßig Insiderwissen und wertvolle Karrieretipps in Deinem Posteingang.