{"id":175413,"date":"2023-04-28T20:22:01","date_gmt":"2023-04-28T19:22:01","guid":{"rendered":"https:\/\/liora.io\/de\/?p=175413"},"modified":"2026-02-06T06:51:54","modified_gmt":"2026-02-06T05:51:54","slug":"was-sind-python-annotationen","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/was-sind-python-annotationen","title":{"rendered":"Python-Annotationen: Was sie sind und wie Du sie nutzt"},"content":{"rendered":"<p><strong>Python-Annotationen 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<article dir=\"auto\" data-turn-id=\"01c556d9-6b86-43c7-bcd0-e6da944e5eda\" data-testid=\"conversation-turn-278\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<p data-start=\"62\" data-end=\"249\">Programmiersprachen wie C, C++ oder Java setzen auf <strong data-start=\"114\" data-end=\"139\">statische Typisierung<\/strong>. Das bedeutet, dass Du den Datentyp einer Variablen deklarieren musst, bevor Du sie im Programm verwendest.<\/p>\n<p data-start=\"251\" data-end=\"594\">Python funktioniert anders. Es ist <strong data-start=\"286\" data-end=\"309\">dynamisch typisiert<\/strong>, daher musst Du den Datentyp einer Variablen nicht vorab angeben \u2013 er wird erst zur Laufzeit bestimmt. Mit anderen Worten: Du brauchst beim Programmieren in Python den Datentyp nicht explizit festzulegen, da die Sprache ihn automatisch aus dem aktuellen Wert der Variablen ableitet.<\/p>\n<p data-start=\"596\" data-end=\"969\">Beide Ans\u00e4tze haben Vor- und Nachteile. Dynamische Sprachen machen es leichter, Code schnell zu schreiben, bergen aber auch Risiken: <strong data-start=\"729\" data-end=\"784\">Typfehler werden erst w\u00e4hrend der Laufzeit sichtbar<\/strong>. So k\u00f6nnen Probleme entstehen, die eigentlich schon in der Entwicklungsphase erkannt werden sollten. Au\u00dferdem kann das Fehlen einer Kompilierung die Performance negativ beeinflussen.<\/p>\n<p data-start=\"971\" data-end=\"1183\">Auch unklare oder zu lange Variablennamen k\u00f6nnen den Code schwerer lesbar machen. Falsche Annahmen \u00fcber das Verhalten bestimmter Funktionen oder fehlerhafte Verkn\u00fcpfungen f\u00fchren zus\u00e4tzlich zu potenziellen Bugs.<\/p>\n<p data-start=\"1185\" data-end=\"1507\" data-is-last-node=\"\" data-is-only-node=\"\">Seit Version 3.0 bietet Python deshalb <strong data-start=\"1224\" data-end=\"1240\">Annotationen<\/strong>, um genau hier anzusetzen. Mit ihnen kannst Du den Datentyp von Variablen explizit kennzeichnen. Das macht den Code nicht nur verst\u00e4ndlicher, sondern hilft auch, Typfehler bereits vor der Laufzeit zu entdecken. So wird die Entwicklung robuster und \u00fcbersichtlicher.<\/p>\n\n<\/article>\n<h3>Was sind Python-Annotationen?<\/h3>\n<p data-start=\"37\" data-end=\"239\">Annotationen sind eine Python-Funktion, mit der Du den <strong data-start=\"92\" data-end=\"143\">Datentyp von Variablen oder Funktionsparametern<\/strong> klar angibst. So wird Dein Code leichter zu lesen und Fehler lassen sich schneller aufsp\u00fcren.<\/p>\n<p data-start=\"241\" data-end=\"376\">Man unterscheidet <strong data-start=\"259\" data-end=\"278\">zwei Hauptarten<\/strong> von Annotationen: Funktions- und Variablenannotation. Beide haben ihre eigenen Einsatzbereiche.<\/p>\n<p data-start=\"378\" data-end=\"545\"><strong data-start=\"378\" data-end=\"403\">Funktionsannotationen<\/strong> geben in der Regel den Datentyp der Parameter und den R\u00fcckgabetyp einer Funktion an, k\u00f6nnen aber auch zus\u00e4tzliche Beschreibungen enthalten.<\/p>\n<p data-start=\"547\" data-end=\"920\"><strong data-start=\"547\" data-end=\"570\">Variablenannotation<\/strong> wurde urspr\u00fcnglich in PEP 484 \u00fcber Typkommentare erm\u00f6glicht, die den Datentyp einer Variablen festhalten. Diese Kommentare erwiesen sich jedoch als umst\u00e4ndlich. Erst mit <strong data-start=\"741\" data-end=\"752\">PEP 526<\/strong> in Python 3.6 kam eine offizielle Syntax f\u00fcr Variablenannotation. Dabei gilt zum Beispiel die Regel, dass vor oder nach dem Doppelpunkt kein Leerzeichen stehen darf.<\/p>\n<p data-start=\"922\" data-end=\"1116\" data-is-last-node=\"\" data-is-only-node=\"\">F\u00fcr <strong data-start=\"926\" data-end=\"949\">komplexe Datentypen<\/strong> wie Listen oder Tupel nutzt Du das <code data-start=\"985\" data-end=\"993\">typing<\/code>-Modul. Damit kannst Du Funktions- und Typannotation kombinieren und auch verschachtelte Strukturen sauber dokumentieren.<\/p>\n\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"458\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/04\/annotation-python1.jpg\" alt=\"\" loading=\"lazy\"><figcaption><\/figcaption><\/figure>\n<h3>Wie greifst Du auf Python-Annotationen zu?<\/h3>\n<p data-start=\"50\" data-end=\"295\">Um auf Annotationen zuzugreifen, verwendest Du das Attribut <code data-start=\"110\" data-end=\"127\">__annotations__<\/code> eines Funktionsobjekts. Die Ergebnisse erh\u00e4ltst Du als <strong data-start=\"183\" data-end=\"197\">Dictionary<\/strong>, in dem die Parameter als Schl\u00fcssel und die zugeh\u00f6rigen Annotationen als Werte hinterlegt sind.<\/p>\n<p data-start=\"297\" data-end=\"553\">Auch wenn der R\u00fcckgabewert einer Funktion kein klassischer Parameter ist, f\u00fcgt Python den Key <code data-start=\"391\" data-end=\"399\">return<\/code> hinzu, um den deklarierten R\u00fcckgabetyp anzugeben. Hat eine Funktion keine Annotationen, liefert <code data-start=\"496\" data-end=\"513\">__annotations__<\/code> einfach ein leeres Dictionary zur\u00fcck.<\/p>\n\n<h3>Wozu dienen Annotationen?<\/h3>\n<p data-start=\"588\" data-end=\"897\">Annotationen haben verschiedene Einsatzbereiche. In erster Linie erm\u00f6glichen sie es, <strong data-start=\"673\" data-end=\"709\">Typfehler schon vor der Laufzeit<\/strong> zu erkennen. Daf\u00fcr nutzt Du Tools wie <strong data-start=\"748\" data-end=\"756\">mypy<\/strong>, das von Jukka Lehtosalo entwickelt wurde, um die Vorteile statischer Typisierung in einer dynamischen Sprache wie Python bereitzustellen.<\/p>\n<p data-start=\"899\" data-end=\"1171\">Mypy \u00fcberpr\u00fcft Deinen annotierten Code, meldet inkonsistente Typen, warnt bei fehlerhafter Syntax und unterst\u00fctzt <strong data-start=\"1013\" data-end=\"1037\">graduale Typisierung<\/strong> \u2013 Du kannst also nach und nach Typinformationen erg\u00e4nzen. Vergleichbare Werkzeuge sind etwa <strong data-start=\"1130\" data-end=\"1141\">pyright<\/strong>, <strong data-start=\"1143\" data-end=\"1154\">pytypes<\/strong> oder <strong data-start=\"1160\" data-end=\"1168\">pyre<\/strong>.<\/p>\n<p data-start=\"1173\" data-end=\"1438\">Auch moderne <strong data-start=\"1186\" data-end=\"1194\">IDEs<\/strong> wie PyCharm erkennen mithilfe von Annotationen den Datentyp einer Variablen und schlagen passende Methoden vor. Das verbessert nicht nur die <strong data-start=\"1336\" data-end=\"1361\">Autovervollst\u00e4ndigung<\/strong>, sondern erleichtert auch die Fehlersuche direkt beim Schreiben des Codes.<\/p>\n<p data-start=\"1440\" data-end=\"1663\">Dar\u00fcber hinaus erh\u00f6hen Annotationen deutlich die <strong data-start=\"1489\" data-end=\"1513\">Lesbarkeit des Codes<\/strong>, weil Datentypen klar und explizit angegeben sind. So sparst Du Dir oft lange Docstrings oder Kommentare, um die erwarteten Datentypen zu erkl\u00e4ren.<\/p>\n<p data-start=\"1665\" data-end=\"1904\" data-is-last-node=\"\" data-is-only-node=\"\">An sich bringen Annotationen keinen direkten funktionalen Vorteil in Python. Ihren eigentlichen Mehrwert entfalten sie erst durch <strong data-start=\"1795\" data-end=\"1823\">Tools von Drittanbietern<\/strong> wie Linter, Type Checker oder IDEs, die diese Informationen gezielt auswerten.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"530\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/04\/annotation-python2-1024x678.jpg\" alt=\"\" loading=\"lazy\">\n<h3>Python lernen \u2013 so holst Du das Maximum aus der Sprache heraus<\/h3>\n<p data-start=\"70\" data-end=\"285\">Python bietet viele raffinierte Features wie Annotationen, mit denen Du das volle Potenzial der Sprache aussch\u00f6pfen kannst. Wenn Du Python von Grund auf lernen m\u00f6chtest, ist <strong data-start=\"244\" data-end=\"261\">Liora<\/strong> ein idealer Einstieg.<\/p>\n<p data-start=\"287\" data-end=\"591\">Alle unsere Programme enthalten ein eigenes Modul zur <strong data-start=\"341\" data-end=\"366\">Python-Programmierung<\/strong> inklusive der wichtigsten Data-Science-Bibliotheken wie <strong data-start=\"423\" data-end=\"432\">NumPy<\/strong> und <strong data-start=\"437\" data-end=\"447\">Pandas<\/strong>. Erg\u00e4nzend vermitteln weitere Module die Themen <strong data-start=\"496\" data-end=\"512\">Datenanalyse<\/strong>, <strong data-start=\"514\" data-end=\"534\">Machine Learning<\/strong>, <strong data-start=\"536\" data-end=\"558\">Data Visualization<\/strong> und <strong data-start=\"563\" data-end=\"588\">Business Intelligence<\/strong>.<\/p>\n<p data-start=\"593\" data-end=\"879\">Nach Abschluss des Kurses verf\u00fcgst Du \u00fcber alle Kenntnisse, um den Beruf auszu\u00fcben, der zu Deinem gew\u00e4hlten Programm passt \u2013 ob <strong data-start=\"721\" data-end=\"737\">Data Analyst<\/strong>, <strong data-start=\"739\" data-end=\"757\">Data Scientist<\/strong>, <strong data-start=\"759\" data-end=\"776\">Data Engineer<\/strong> oder <strong data-start=\"782\" data-end=\"798\">Data Manager<\/strong>. Mehr als 80 % unserer Alumni finden direkt nach dem Kurs einen passenden Job.<\/p>\n<p data-start=\"881\" data-end=\"1166\">Unsere Weiterbildungen werden komplett <strong data-start=\"920\" data-end=\"930\">online<\/strong> durchgef\u00fchrt und kombinieren <strong data-start=\"960\" data-end=\"989\">gecoachte Lernplattformen<\/strong> mit <strong data-start=\"994\" data-end=\"1016\">Live-Masterclasses<\/strong>. Du kannst flexibel zwischen einer <strong data-start=\"1052\" data-end=\"1088\">berufsbegleitenden Weiterbildung<\/strong> und einem <strong data-start=\"1099\" data-end=\"1122\">intensiven Bootcamp<\/strong> w\u00e4hlen \u2013 je nach Zeitbudget und Lernstil.<\/p>\n<p data-start=\"1168\" data-end=\"1347\">Auch die Finanzierung ist gesichert: Alle Programme sind f\u00fcr das <strong data-start=\"1233\" data-end=\"1264\">Pers\u00f6nliche Lernkonto (CPF)<\/strong> sowie f\u00fcr Ma\u00dfnahmen wie <strong data-start=\"1289\" data-end=\"1313\">POEI bei P\u00f4le Emploi<\/strong> f\u00fcr Arbeitssuchende zugelassen.<\/p>\n<p data-start=\"1349\" data-end=\"1493\">Warte nicht l\u00e4nger und entdecke <strong data-start=\"1381\" data-end=\"1398\">Liora<\/strong> \u2013 so nutzt Du die St\u00e4rken von Python und startest Deine Karriere im datengetriebenen Umfeld.<\/p>\n<p data-start=\"1495\" data-end=\"1662\" data-is-last-node=\"\" data-is-only-node=\"\">Jetzt kennst Du die wichtigsten Aspekte der <strong data-start=\"1539\" data-end=\"1562\">Python-Annotationen<\/strong>. Mehr spannende Details findest Du au\u00dferdem in unserem <strong data-start=\"1618\" data-end=\"1636\">Python-Dossier<\/strong> und im <strong data-start=\"1644\" data-end=\"1659\">IDE-Dossier<\/strong>.<\/p>\n\t\t\t\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\">Liora Weiterbildungen entdecken<\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Python-Annotationen 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 setzen auf statische Typisierung. Das [&hellip;]<\/p>\n","protected":false},"author":76,"featured_media":175414,"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-175413","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\/175413","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=175413"}],"version-history":[{"count":5,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/175413\/revisions"}],"predecessor-version":[{"id":217584,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/175413\/revisions\/217584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/175414"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=175413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=175413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}