Was bedeutet -> in Python-Funktionsdefinitionen?
Ich habe vor kurzem etwas Interessantes beim Anschauen bemerktPython 3.3-Grammatikspezifikation:
funcdef: 'def' NAME parameters ['->' test] ':' suite
Der optionale Pfeilblock fehlte in Python 2 und ich konnte keine Informationen zu seiner Bedeutung in Python 3 finden. Es stellt sich heraus, dass dies korrektes Python ist und vom Interpreter akzeptiert wird:
def f(x) -> 123:
return x
Ich dachte, dass dies eine Art Vorbedingungssyntax sein könnte, aber:
Ich kann nicht testenx
hier ist es noch undefiniert,Egal, was ich nach dem Pfeil setze (z.2 < 1
) hat dies keinen Einfluss auf das Funktionsverhalten.Könnte es jemand erklären, der mit dieser Syntax vertraut ist?