{"id":179480,"date":"2023-07-02T08:31:11","date_gmt":"2023-07-02T07:31:11","guid":{"rendered":"https:\/\/liora.io\/de\/?p=179480"},"modified":"2026-08-03T12:55:03","modified_gmt":"2026-08-03T10:55:03","slug":"python-dekorateure-tipps-fuer-fortgeschrittene","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/python-dekorateure-tipps-fuer-fortgeschrittene","title":{"rendered":"Python Dekorateure: Tipps f\u00fcr Fortgeschrittene"},"content":{"rendered":"\n<p><strong>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.<\/strong><\/p>\n\n\n\n<p>Allerdings besteht die <a href=\"https:\/\/liora.io\/de\/data-scientist-gehalt-wie-viel-verdienen-datenwissenschaftlerinnen\">Arbeit des Data Scientists<\/a> manchmal darin, <a href=\"https:\/\/liora.io\/de\/open-ai-api-alles-was-du-wissen-musst\">APIs zu erstellen,<\/a> um auf ein Modell oder Daten zuzugreifen. Bei uns ist daf\u00fcr der Data Engineer zust\u00e4ndig, aber in vielen Organisationen ist der Data Scientist daf\u00fcr zust\u00e4ndig. Ein Unternehmen wie Amazon erstellt zum Beispiel alle seine Funktionen in Form von APIs. Es ist daher unerl\u00e4sslich, sich neben Kenntnissen \u00fcber <a href=\"https:\/\/liora.io\/de\/machine-learning-und-reisen\">Machine Learning<\/a>, <a href=\"https:\/\/liora.io\/de\/deep-learning-oder-tiefes-lernen-was-ist-das-denn\">Deep Learning<\/a>, Data Visualization und verschiedene statistische Techniken zur Datenexploration auch mit APIs vertraut zu machen.<\/p>\n\n\n\n<p>Um nicht auf seine Lieblingssprache verzichten zu m\u00fcssen, wird der Data Scientist dann nat\u00fcrlich <a href=\"https:\/\/liora.io\/de\/flask-einer-der-populaersten-python-frameworks\">auf Flask zur\u00fcckgreifen<\/a>. Das ist die Technologie, die wir in unserem <a href=\"https:\/\/liora.io\/de\/weiterbildung-data-engineer\">Data-Engineering-Kurs<\/a> in den Vordergrund stellen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"flask-ist-schon-und-gut-aber\">Flask ist sch\u00f6n und gut, aber&#8230;<\/h2>\n\n\n\n<p>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:<\/p>\n\n\n\n<p>Diese @app.route direkt aus der H\u00f6lle, die dein gesamtes Verst\u00e4ndnis von Python in Frage stellt&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"die-dekorateure\">Die Dekorateure<\/h2>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:468px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Illustration zu \u201eDie Dekorateure\u201c\" decoding=\"async\" height=\"350\" loading=\"lazy\" sizes=\"(max-width: 468px) 100vw, 468px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/peintre-en-batiment.png\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/peintre-en-batiment.png 468w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/peintre-en-batiment-300x224.png 300w\" style=\"width:468px;max-width:100%;height:auto\" width=\"468\"\/><\/figure>\n\n\n\n<p>Dieses @ wird in Python verwendet, um einen Dekorateur einzuf\u00fchren (und nein, er ist nicht einfach nur da, um sch\u00f6n auszusehen&#8230;). Es steht direkt vor einer Funktion und erm\u00f6glicht es, die Funktion in eine andere Funktion, den sogenannten Wrapper, einzuwickeln (wrap).<\/p>\n\n\n\n<p>Wenn ich also eine Funktion erstellen m\u00f6chte, die die Zeit misst und anzeigt, die eine Funktion ben\u00f6tigt, um zu laufen, kann ich sie wie folgt implementieren:<\/p>\n\n\n\n<p>Diese<strong> Funktion nimmt eine Funktion als Argument<\/strong> (function, wie der Name schon sagt), definiert darin eine neue Funktion (timed_function) und gibt die neue Funktion zur\u00fcck.<\/p>\n\n\n\n<p>Wenn ich also einen Dekorateur benutze, kann ich sehen, dass die Zeit am Ende der Ausf\u00fchrung angezeigt wird.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center wp-container-core-buttons-is-layout-5ee10de4\" style=\"margin-top:32px;margin-bottom:32px\"><div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/data-ki\/data-analyst\">Entdecke unsere Weiterbildungen<\/a><\/div><\/div>\n\n\n\n<p><a href=\"https:\/\/liora.io\/de\/zeitreihe-python-verarbeitung-und-modellierung\">Python<\/a> Dekorateure sind sehr n\u00fctzlich, um den Datentyp zu \u00fcberpr\u00fcfen und um Informationen \u00fcber die Funktionsweise der Funktion anzuzeigen, ohne sie in jeder Funktion neu codieren zu m\u00fcssen. Sie werden vor allem in Flask verwendet, aber auch in vielen Quellcodes unserer <a href=\"https:\/\/liora.io\/de\/bokeh-die-python-bibliothek-fuer-visualisierung-der-naechsten-generation\">Lieblingsbibliotheken<\/a>: ein Beispiel, ein anderes und ein drittes f\u00fcr unterwegs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"gehen-wir-einen-schritt-weiter\">Gehen wir einen Schritt weiter  &#8230;<\/h3>\n\n\n\n<p>Als ich das gesehen habe, habe ich mir ein paar Fragen gestellt (und nicht nur, ob es n\u00fctzlich ist).<\/p>\n\n\n\n<p>Kann man Argumente an den Python Dekorateur \u00fcbergeben und nicht an die dekorierte Funktion? Ja, aber die Syntax ist etwas komplizierter:<\/p>\n\n\n\n<p>Kann man Python Dekorateure aneinanderreihen? Kein Problem:<\/p>\n\n\n\n<p>Kann man Methoden dekorieren? Ja<\/p>\n\n\n\n<p>Kann man Klassen dekorieren? Ja<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\" style=\"width:300px;max-width:100%;margin-top:32px;margin-right:auto;margin-bottom:32px;margin-left:auto\"><img alt=\"Ein Klassendekorateur?\" decoding=\"async\" height=\"199\" loading=\"lazy\" sizes=\"(max-width: 300px) 100vw, 300px\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/deco-classe-300x199.png\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/deco-classe-300x199.png 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/deco-classe.png 470w\" style=\"width:300px;max-width:100%;height:auto\" width=\"300\"\/><figcaption class=\"wp-element-caption\">Ein Klassendekorateur?<\/figcaption><\/figure>\n\n\n\n<p>Dekorateure sind ein ziemlich interessantes Werkzeug. Sie scheinen auf den ersten Blick \u00fcberraschend 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.<\/p>\n\n\n\n<p>Hat dir dieser Artikel gefallen? Dann melde dich f\u00fcr unseren Newsletter an und erhalte Datentipps, die du sonst nirgends findest!<\/p>\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":76,"featured_media":179481,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2476],"class_list":["post-179480","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-dev"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/179480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/76"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=179480"}],"version-history":[{"count":4,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/179480\/revisions"}],"predecessor-version":[{"id":223750,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/179480\/revisions\/223750"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/179481"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=179480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=179480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}