@mechanicalStore: Jo man findet viele schlechte Beispielcodes, denn natürlich ist das bei ``float`` auch Unsinnig wenn man da einen literalen Gleitkommawert zuweist, noch mal ``float`` zu annotieren. Das gilt insbesondere für literale Werte die eindeutig sind, aber auch auch für beliebige Datentypen wo der Datentyp aufgerufen und das Ergebnis zugewiesen wird.
Code: Alles auswählen
origin: Point = Point(23, 24)
# bietet absolut keinen Mehrwert über
origin = Point(23, 42)
Wer beim zweiten nicht sieht, dass der `origin`-Wert vom Typ `Point` ist, dem wird auch die Annotation nicht helfen. Und wie gesagt gilt das sowohl für Menschen wie auch für die Werkzeuge mit denen man diese Annotation überprüft.
Ich finde das ein bisschen ironisch, dass man diesen Unsinn bei Java mit dem ``auto``-Schlüsselwort nach Ewigkeiten endlich losgeworden ist, und jetzt Leute bei Python mit dem Unsinn anfangen.
Code: Alles auswählen
// Java früher:
Point origin = new Point(23, 42);
// Heute:
auto origin = new Point(23, 42);
Das die Annotationen genau Null Einfluss auf den Programmablauf haben, wie grubenfox ja schon schrieb, hat übrigens auch zur Folge, dass es wirklich wichtig ist, dass man Annotationen selber mit einem entsprechenden Werkzeug überprüft, damit man da nix Falsches hin schreibt. Denn genau wie bei Kommentaren sind inhaltlich falsche Annotation schlimmer als keine Annotationen. Letztlich sind Annotationen Kommentare denen der Leser mehr vertrauen schenkt als normalen Kommentaren, denn im Gegensatz zu normalen Kommentaren sind Annotation formal definiert und automatisch überprüfbar, und man geht als Leser davon aus, dass das auch passiert, die also inhaltlich korrekt sind, weil es keinen vernünftigen Grund gibt, das sie es nicht sind.