在Python中使用` - >`?

时间:2016-09-22 01:02:20

标签: python python-3.x type-hinting

任何人都可以告诉我以下两个功能有什么区别?除->外,它们看起来都非常相似。

foo1()

def foo1() -> None:
pass

foo2的()

def foo2():
pass

当我以类似的方式称呼他们时。那么为什么要使用-> None?我知道使用Python的None

1 个答案:

答案 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模块。