2016-07-09 23 views
2

Ich arbeite durch Mastering Matplotlib und in Kapitel zwei sie führen den folgenden Codeausschnitt:Was bedeutet `def main() -> None`: tun?

#! /usr/bin/env python3.4 
import matplotlib.pyplot as plt 
def main() -> None: 
    plt.plot([1,2,3,4]) 
    plt.ylabel('some numbers') 
    plt.savefig('simple-line.png') 

if __name__ == '__main__': 
    main() 

Dies kann in this Notebook zu sehen, Zelle 10. Ich habe noch nie eine Hauptmethode definiert auf diese Weise zu sehen, was ist die Funktion von -> None? Mein einziger Gedanke ist bisher, dass dies ähnlich sein könnte wie
def main(argv=None)?

Darüber hinaus ist -> in Python, ich kann es nicht in this Liste der Python-Operatoren finden.

+0

https://docs.python.org/3/library/typing.html Es ist ein Typhinweis für den Rückgabetyp der Funktion. – pvg

Antwort

3

Wie es ist, tut es absolut nichts. Es ist eine Typannotation für die main-Funktion, die einfach angibt, dass diese Funktion None zurückgibt. Typ Anmerkungen wurden in Python 3.5 eingeführt und sind in PEP 484 angegeben.

Anmerkungen zum Rückgabewert einer Funktion verwenden Sie das Symbol ->, gefolgt von einem Typ. Es ist völlig optional und wenn Sie es entfernen, würde sich nichts ändern.

Dies wird absolut keine Auswirkungen auf die Ausführung haben, es wird nur in Betracht gezogen, wenn Sie es mit einem Typenprüfwerkzeug wie mypy verwenden.