Что делает def main() -> None?

Я работаю над Mastering Matplotlib, и во второй главе они представляют следующий фрагмент кода:

#! /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()

Это можно увидеть в этой записной книжке. , ячейка 10. Я никогда не видел, чтобы основной метод определялся таким образом, какова функция -> None? Моя единственная мысль до сих пор заключается в том, что это может быть похоже на def main(argv=None)?

Кроме того, что такое -> в Python? Я не могу найти его в этом списке операторов Python.


person Ianhi    schedule 09.07.2016    source источник
comment
docs.python.org/3/library/typing.html Это тип подсказка для возвращаемого типа функции.   -  person pvg    schedule 10.07.2016


Ответы (1)


Как есть, он абсолютно ничего не делает. Это аннотация типа для функции main, которая просто указывает, что эта функция возвращает None. Аннотации типов были введены в Python 3.5 и указаны в PEP 484.

Аннотации для возвращаемого значения функции используют символ ->, за которым следует тип. Это совершенно необязательно, и если вы его удалите, ничего не изменится.

Это абсолютно не повлияет на выполнение, оно принимается во внимание только в том случае, если вы используете его с инструментом проверки типов, например mypy.

person Dimitris Fasarakis Hilliard    schedule 09.07.2016