922 Stimmen

Was bedeutet -> in Python-Funktionsdefinitionen?

Kürzlich habe ich etwas Interessantes bemerkt, als ich mir Python 3.3 Grammatik-Spezifikation :

funcdef: 'def' NAME parameters ['->' test] ':' suite

Der optionale "arrow"-Block fehlte in Python 2, und ich konnte keine Informationen über seine Bedeutung in Python 3 finden. Es stellte 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 testen x da sie noch nicht definiert ist,
  • Egal, was ich nach dem Pfeil einfüge (z. B. 2 < 1 ), hat dies keine Auswirkungen auf das Verhalten der Funktion.

Könnte jemand, der mit diesem Syntaxstil vertraut ist, ihn erklären?

0voto

Shivam Chahar Punkte 1

Bitte beachten Sie die PEP3107 Spezifikation. Dies sind Funktionsanmerkungen. Python 2.x hat docstrings. In ähnlicher Weise wurde mit Python 3 die Verwendung von -> als Funktionsanmerkungen eingeführt. Python verwendet diese bei der Erstellung der Dokumentation.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X