{"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-02-06T06:36:37","modified_gmt":"2026-02-06T05:36:37","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":"<h3>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.<\/h3>\nAllerdings 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.\n\nUm 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.\n<h3>Flask ist sch\u00f6n und gut, aber&#8230;<\/h3>\nWenn 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:\n\nDiese @app.route direkt aus der H\u00f6lle, die dein gesamtes Verst\u00e4ndnis von Python in Frage stellt&#8230;\n<h3>Die Dekorateure<\/h3>\n<style><br \/>\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"468\" height=\"350\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/peintre-en-batiment.png\" alt=\"\" loading=\"lazy\" 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\" sizes=\"(max-width: 468px) 100vw, 468px\"><figcaption><\/figcaption><\/figure>\nDieses @ 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).\n\nWenn 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:\n\nDiese<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.\n\nWenn ich also einen Dekorateur benutze, kann ich sehen, dass die Zeit am Ende der Ausf\u00fchrung angezeigt wird.\n\n<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.\n<h3>Gehen wir einen Schritt weiter  &#8230;<\/h3>\nAls ich das gesehen habe, habe ich mir ein paar Fragen gestellt (und nicht nur, ob es n\u00fctzlich ist).\n\nKann man Argumente an den Python Dekorateur \u00fcbergeben und nicht an die dekorierte Funktion? Ja, aber die Syntax ist etwas komplizierter:\n\nKann man Python Dekorateure aneinanderreihen? Kein Problem:\n\nKann man Methoden dekorieren? Ja\n\nKann man Klassen dekorieren? Ja\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"199\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/03\/deco-classe-300x199.png\" alt=\"\" loading=\"lazy\" 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\" sizes=\"(max-width: 300px) 100vw, 300px\">\n\n<figcaption>Ein Klassendekorateur?<\/figcaption><\/figure>\nDekorateure 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.\n\nHat dir dieser Artikel gefallen? Dann melde dich f\u00fcr unseren Newsletter an und erhalte Datentipps, die du sonst nirgends findest!\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">Entdecke unsere Weiterbildungen<\/a><\/div><\/div>\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":1,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/179480\/revisions"}],"predecessor-version":[{"id":217411,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/179480\/revisions\/217411"}],"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}]}}