def main () -> None 有啥作用? [复制]

Posted

技术标签:

【中文标题】def main () -> None 有啥作用? [复制]【英文标题】:What does def main () -> None do? [duplicate]def main () -> None 有什么作用? [复制] 【发布时间】:2016-11-12 04:57:50 【问题描述】:

我正在精通 Matplotlib,在第二章中他们介绍了以下代码 sn-p:

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

这可以在this笔记本,单元格10中看到。我从未见过这样定义的main方法,-> None的功能是什么? 到目前为止我唯一的想法是这可能类似于def main(argv=None)

除此之外,Python 中的-> 是什么?我在this Python 运算符列表中找不到它。

【问题讨论】:

docs.python.org/3/library/typing.html 是函数返回类型的类型提示。 【参考方案1】:

按原样,它完全没有任何作用。它是main 函数的类型注释,它简单地说明此函数返回None。类型注释在Python 3.5 中引入,并在PEP 484 中指定。

函数返回值的注释使用符号-> 后跟一个类型。它是完全可选的,如果你删除它,什么都不会改变。

这将对执行绝对没有影响,只有在将其与mypy 之类的类型检查工具一起使用时才会考虑它。

【讨论】:

以上是关于def main () -> None 有啥作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

“foo is None”和“foo == None”之间有啥区别吗?

NaN 和 None 有啥区别?

python接口测试

测试“nil”和“.None”的可选项有啥区别?

Python中的Pass和None有啥区别

有啥方法可以判断函数对象是 lambda 还是 def?