{"id":175406,"date":"2023-04-28T19:10:33","date_gmt":"2023-04-28T18:10:33","guid":{"rendered":"https:\/\/liora.io\/de\/?p=175406"},"modified":"2026-02-20T11:04:11","modified_gmt":"2026-02-20T10:04:11","slug":"python-annotations-wie-und-wann-benutzt-man-sie","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/python-annotations-wie-und-wann-benutzt-man-sie","title":{"rendered":"Python Annotations: Wie und wann benutzt man sie ?"},"content":{"rendered":"\n<p><strong>Python Annotations bieten zus\u00e4tzliche Informationen \u00fcber Variablen oder Funktionen. Sie k\u00f6nnen z. B. die Lesbarkeit des Codes verbessern oder Fehler mithilfe von IDEs oder Bibliotheken von Drittanbietern aufsp\u00fcren. Hier erf\u00e4hrst du alles, was du \u00fcber Python-Annotationen wissen musst und wie du lernst, sie zu verwenden.<\/strong><\/p>\n\n\n\n<p>Programmiersprachen wie <a href=\"https:\/\/liora.io\/de\/devsecops-definition-was-ist-der-unterschied-zu-devops\">C, C++ oder Java<\/a> sind Sprachen mit statischer Typisierung. Das bedeutet, dass der Datentyp der Variable deklariert werden muss, bevor sie tats\u00e4chlich in einem Programm verwendet werden kann. Im Gegensatz dazu ist Python eine Sprache mit dynamischer Typisierung. Der Datentyp der Variable muss also nicht vorher angegeben werden. Er wird erst zur Laufzeit bestimmt.<\/p>\n\n\n\n<p>Mit anderen Worten: Ein Python-Entwickler muss den Datentyp des Wertes, den eine Variable annimmt, nicht deklarieren, da Python den Datentyp der Variable anhand ihres aktuellen Wertes realisiert.<\/p>\n\n\n\n<p>Statistische und dynamische Sprachen haben ihre eigenen Vor- und Nachteile. Eines der Probleme dynamischer Sprachen ist, dass Typisierungsfehler nur in der Laufzeit erkannt werden. Mehr Fehler werden in der Laufzeit entdeckt, obwohl sie w\u00e4hrend der Entwicklungszeit h\u00e4tten entdeckt werden k\u00f6nnen. Au\u00dferdem kann das Fehlen einer Kompilierung zu einem leistungsschwachen <strong>Code<\/strong> f\u00fchren.<\/p>\n\n\n\n<p>Wortreiche Variablen machen den Code schwerer zu sagen. Auch falsche Annahmen \u00fcber das Verhalten bestimmter Funktionen und Fehler durch falsche Verkn\u00fcpfungen sind zu beklagen. <a href=\"https:\/\/liora.io\/de\/data-scientist-vs-data-analyst-gemeinsamkeiten-und-unterschiede\">Seit Version 3.0 bietet Python<\/a> jedoch die M\u00f6glichkeit, diese Bedenken mithilfe von Annotationen zu beheben. Ziel ist es, den Datentyp von Variablen hervorzuheben, so dass Typisierungsfehler vor der Laufzeit erkannt werden k\u00f6nnen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-was-sind-python-annotations\">Was sind Python-Annotations?<\/h2>\n\n\n\n<p>Python Annotations sind eine <strong>Python-Funktion<\/strong>, die den Entwicklern den Datentyp von Variablen oder Funktionsparametern anzeigt. Sie k\u00f6nnen auch die Lesbarkeit eines Programms in Python verbessern. Es gibt zwei Haupttypen von <a href=\"https:\/\/liora.io\/de\/python-pytest-anleitung-zur-anwendung\">Annotationen in Python<\/a>: Funktionsannotationen und Variablenannotationen. Jede hat ihre Rolle und ihre Besonderheiten.<\/p>\n\n\n\n<p>Funktionsannotationen k\u00f6nnen Beschreibungen oder Datentypen von Parametern und vieles mehr angeben. Am h\u00e4ufigsten werden Funktionsannotationen jedoch verwendet, um den Datentyp der Parameter einer Funktion und den R\u00fcckgabetyp einer Funktion zu bezeichnen. Variablenanmerkungen wurden urspr\u00fcnglich in PEP 484 eingef\u00fchrt, wo Typkommentare zur Annotation von Variablen verwendet werden. Diese Kommentare geben den Datentyp der Variablen an. Diese Methode ist jedoch nicht sehr effizient und hat ihre eigenen Nachteile.<\/p>\n\n\n\n<p>Erst mit <strong>PEP 526 in Python 3.6<\/strong> wurden Annotationen f\u00fcr Variablen eingef\u00fchrt. Beim Schreiben von Variablenanmerkungen gibt es einige Regeln, wie z. B. dass vor oder nach einem Doppelpunkt kein Leerzeichen stehen darf. F\u00fcr komplexe Typen wie Listen oder Tupel wird ein Typisierungsmodul verwendet. Dies erm\u00f6glicht es zum Beispiel, sowohl Funktions- als auch Typ-Annotationen zu verwenden.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/04\/annotation-python1.jpg\" alt=\"\" style=\"width:1000px;height:auto\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wie-kann-ich-auf-python-annotationen-zugreifen\">Wie kann ich auf Python-Annotationen zugreifen?<\/h2>\n\n\n\n<p>Um auf <strong>Annotationen<\/strong> zuzugreifen, kannst du das Attribut &#8222;__ Annotationen __&#8220; auf dem Funktionsobjekt verwenden. Die Ergebnisse werden in Form eines W\u00f6rterbuchs ausgegeben oder die Tasten und Werte werden auf die Parameter bzw. Annotationen abgebildet.<\/p>\n\n\n\n<p>Auch wenn die <strong>R\u00fcckgabe kein Parameter<\/strong> ist, kann sie von Python hinzugef\u00fcgt werden, um den R\u00fcckgabetyp der Funktion anzugeben. Wenn eine Funktion keine Annotationen hat, dann gibt das Attribut &#8222;__annotations__&#8220; ein leeres W\u00f6rterbuch zur\u00fcck.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wozu-dienen-python-annotations\">Wozu dienen Python Annotations ?<\/h2>\n\n\n\n<p><strong>Python Annotations<\/strong> haben mehrere Anwendungsf\u00e4lle. Zun\u00e4chst einmal k \u00f6nnen sie verwendet werden, um Typisierungsfehler vor der Laufzeit mithilfe von Drittanbieter-Tools wie mypy zu erkennen, die die statische Typisierung \u00fcberpr\u00fcfen und Tipps oder Warnungen anbieten k\u00f6nnen. Das Tool<a href=\"\/\"> mypy<\/a> wurde von Jukka Lehtosalo entwickelt, um die Vorteile einer statischen Typisierungsumgebung f\u00fcr eine dynamische Sprache wie Python zu bieten. Es \u00fcberpr\u00fcft den annotierten Code in Python und gibt Warnungen aus, wenn dieser inkonsistent verwendet wird.<\/p>\n\n\n\n<p>Dieses Tool \u00fcberpr\u00fcft auch die <strong>Syntax des Codes<\/strong> und meldet Fehler, wenn die Syntax ung\u00fcltig ist. Es unterst\u00fctzt auch die schrittweise Typisierung, sodass du in deinem eigenen Tempo Typisierungstipps in den Code einf\u00fcgen kannst. \u00c4hnliche Tools sind z. B. pyright, pytypes oder pyre. Ebenso ist es m\u00f6glich, mithilfe von <a href=\"https:\/\/liora.io\/de\/datenbank-und-code-refactoring-unser-guide\">IDEs Fehler zu erkennen<\/a>, wenn die Annotation verwendet wurde, um den Typ der Parameterdaten anzugeben. Dies hilft, Fehler beim Schreiben des Codes in einer integrierten Entwicklungsumgebung wie Pycharm zu erkennen.<\/p>\n\n\n\n<p>Dar\u00fcber hinaus k\u00f6nnen Annotationen auch bei der Autovervollst\u00e4ndigung helfen. Eine IDE versteht anhand von Annotationen den Datentyp einer Variablen und schl\u00e4gt daher Methoden vor, die auf diesen Datentyp angewendet werden k\u00f6nnen.<br>Schlie\u00dflich verbessern Annotationen auch die Lesbarkeit des Codes. Datentypen werden klar und explizit hervorgehoben, wodurch die Notwendigkeit von Docstrings oder Kommentaren zur detaillierten Erkl\u00e4rung entf\u00e4llt.<\/p>\n\n\n\n<p>An sich sind Annotationen bei <strong>Python<\/strong> nicht besonders n\u00fctzlich. Der eigentliche Vorteil liegt in den Bibliotheken von Drittanbietern wie Linters, Type Checkers oder IDEs, die Annotationen verwenden k\u00f6nnen.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/04\/annotation-python2-1024x678.jpg\" alt=\"\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wie-lernt-man-python-programmieren\">Wie lernt man Python programmieren ?<\/h2>\n\n\n\n<p>Python hat viele Feinheiten, wie z. B. Annotationen, die es dir erm\u00f6glichen, sein volles Potenzial auszusch\u00f6pfen. Um den Umgang mit dieser Programmiersprache zu erlernen, kannst du dich f\u00fcr <strong>Liora<\/strong> entscheiden. Alle unsere Kurse enthalten ein Modul, das sich speziell mit der Python-Programmierung und seinen Data Science-Bibliotheken wie <a href=\"https:\/\/liora.io\/de\/numpy\">NumPy<\/a> und Pandas befasst. Die anderen Module des Programms decken Datenanalyse, Machine Learning, DataViz oder <a href=\"https:\/\/liora.io\/de\/einfuhrung-in-die-business-intelligence\">Business Intelligence<\/a> ab.<\/p>\n\n\n\n<p>Am Ende des Kurses wirst du alle F\u00e4higkeiten besitzen, die du brauchst, um den Beruf auszu\u00fcben, der dem gew\u00e4hlten Kurs entspricht: Data Analyst, Data Scientist, Data Engineer oder auch Data Manager. Mehr als 80 % unserer Alumni haben direkt nach dem Kurs einen Job gefunden.<\/p>\n\n\n\n<p>Alle unsere Kurse werden online durchgef\u00fchrt und verfolgen einen <a href=\"https:\/\/liora.io\/de\/blended-learning-fortbildung-wie-waere-es-mit-data-science\">Blended-Learning-Ansatz,<\/a> der Online-Lernen auf einer gecoachten Plattform und Masterclasses miteinander verbindet. Du kannst zwischen einer Weiterbildung und einem intensiven <a href=\"https:\/\/liora.io\/de\/online-bootcamp-in-datascience-lerne-effektiv-und-flexibel\">BootCamp<\/a> w\u00e4hlen, je nach deinen Vorlieben und deiner Verf\u00fcgbarkeit.<\/p>\n\n\n\n<p>Was die Finanzierung angeht, sind alle unsere Kurse vom <a href=\"https:\/\/liora.io\/de\/data-scientist-bildungsgutschein-booste-deine-karriere-und-dein-gehalt\">Bildungsgutschein<\/a> finanzierbar.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/data-ki\">Liora Weiterbildungen<\/a><\/div>\n<\/div>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Was sind Python-Annotations?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Python-Annotationen sind eine Funktion (seit Python 3.0), die den Datentyp von Variablen oder Funktionsparametern anzeigt und die Lesbarkeit verbessert. Es gibt zwei Haupttypen: Funktionsannotationen (f\u00fcr Parametertypen und R\u00fcckgabetyp) und Variablenannotationen (eingef\u00fchrt in PEP 526, Python 3.6). F\u00fcr komplexe Typen wie Listen oder Tupel wird das Typisierungsmodul verwendet. Sie helfen, Typisierungsfehler vor der Laufzeit zu erkennen \u2013 ein Vorteil gegen\u00fcber dynamischer Typisierung.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Wie kann ich auf Python-Annotationen zugreifen?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Der Zugriff erfolgt \u00fcber das Attribut '__annotations__' auf dem Funktionsobjekt. Die Ergebnisse werden als W\u00f6rterbuch ausgegeben, wobei Schl\u00fcssel die Parameternamen und Werte die Annotationen sind. Der R\u00fcckgabetyp wird ebenfalls angegeben. Bei Funktionen ohne Annotationen gibt das Attribut ein leeres W\u00f6rterbuch zur\u00fcck.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Wozu dienen Python Annotations ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Annotationen haben mehrere Anwendungen: Erkennung von Typisierungsfehlern vor der Laufzeit mit Tools wie mypy, pyright oder pyre; Fehlererkennung durch IDEs wie Pycharm; Autovervollst\u00e4ndigung (IDE versteht Datentyp und schl\u00e4gt passende Methoden vor); und verbesserte Lesbarkeit des Codes (explizite Datentypen reduzieren Docstring-Bedarf). Der eigentliche Nutzen liegt in Drittanbieter-Tools, die Annotationen verwenden.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Wie lernt man Python programmieren ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Liora bietet Kurse mit Python-Modul und Data-Science-Bibliotheken (NumPy, Pandas) an. Weitere Module decken Datenanalyse, Machine Learning, DataViz und Business Intelligence ab. Absolventen k\u00f6nnen als Data Analyst, Data Scientist, Data Engineer oder Data Manager arbeiten (\u00fcber 80% Jobvermittlung direkt nach Kurs). Die Fernkurse nutzen Blended-Learning (gecoachte Plattform + Masterclasses) als Weiterbildung oder BootCamp und sind \u00fcber Bildungsgutschein finanzierbar.\"\n      }\n    }\n  ]\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Python Annotations bieten zus\u00e4tzliche Informationen \u00fcber Variablen oder Funktionen. Sie k\u00f6nnen z. B. die Lesbarkeit des Codes verbessern oder Fehler mithilfe von IDEs oder Bibliotheken von Drittanbietern aufsp\u00fcren. Hier erf\u00e4hrst du alles, was du \u00fcber Python-Annotationen wissen musst und wie du lernst, sie zu verwenden. Programmiersprachen wie C, C++ oder Java sind Sprachen mit statischer [&hellip;]<\/p>\n","protected":false},"author":82,"featured_media":175407,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2476],"class_list":["post-175406","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\/175406","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\/82"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=175406"}],"version-history":[{"count":3,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/175406\/revisions"}],"predecessor-version":[{"id":219179,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/175406\/revisions\/219179"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/175407"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=175406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=175406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}