Colon in Python Funktion bei Parametern?
Hallo Leute!
Ich bin heute auf einen Code gestoßen und mir ist das Colon bei dem Parameter aufgefallen, obwohl ich mir ehrlich gesagt nicht sicher bin was das bedeutet.
Ich habe recherhiert aber relativ wenig dazu gefunden, dennoch glaube ich, dass diese Definition gerecht wird:(siehe bitte folgenden Code)
def funktionsname(parameter1 : float) ...
Bedeutet das dann, dass der parameter1 nur ein float sein kann, oder liege ich komplett falsch?
Danke für die sicherlich bemühten Antworten im Vorraus,
me
2 Antworten
Das sind Type Hints:
https://peps.python.org/pep-0484/
Das Wort Hint sagt es schon, aber hier nochmal in aller Deutlichkeit:
While these annotations are available at runtime through
the usual __annotations__ attribute, no type checking
happens at runtime.
Python ist halt dynamisch typisiert und im Prinzip darf jede Funktion beim gleichen Parameter verschieden Typen akzeptieren.
Bedeutet das dann, dass der parameter1 nur ein float sein kann,
Nein, aber du bist auf der richtigen Spur. Python ist eine dynamisch typisierte Sprache, d.h. die Typen werden an sich erst zur Laufzeit festgelegt.
Das hat aber gewisse Nachteile, vor allem wenn Programme groß und komplex werden. Daher hat man in Python die sogenannten type hints eingeführt: die erzwingen keine Typen, helfen aber dem Entwickler zu verstehen, welcher Typ wo erwartet wird.
Spezielle Editoren für Python können das auch verwenden, um darauf hinzuweisen, wenn versehentlich der falsche Typ verwendet wird. Das funktioniert aber nie so zuverlässig wie bei einer statisch typisierten Sprache (wie es z.B. Java ist).