任何人都可以告诉我以下两个功能有什么区别?除->
外,它们看起来都非常相似。
foo1()
def foo1() -> None:
pass
foo2的()
def foo2():
pass
当我以类似的方式称呼他们时。那么为什么要使用-> None
?我知道使用Python的None
。
答案 0 :(得分:2)
这称为type hinting,仅用于帮助程序员更轻松地理解程序的返回和输入类型,以及允许外部linting和静态分析程序在Python上工作。 Here is the official RFC explaining why it exists
Python实际上并不使用类型提示(因为Python是动态类型的 - 类型是在运行时确定的,而不是在实际解析源时的编译时)并且可以安全地省略。
符合您的版本2的功能在任何情况下都非常好。
Python 3内置了对typing
模块类型提示的支持,而Python 2.7需要第三方mypy
模块。