在python 3.x中,通常使用函数的返回类型注释,例如:
def foo() -> str:
return "bar"
Run Code Online (Sandbox Code Playgroud)
"void"类型的正确注释是什么?
我正在考虑3种选择:
def foo() -> None:
None不是一个类型,def foo() -> type(None):
NoneType,def foo():
选项2.对我来说似乎最合乎逻辑,但我已经看到了一些1的实例.
Python 3.6支持类型注释,如:
def foo() -> int:
return 42
Run Code Online (Sandbox Code Playgroud)
但是当函数没有返回任何内容时,预期会使用什么?PEP484示例主要None用作返回类型,但也有包中的NoReturn类型typing.
所以,问题是什么是更好的使用和什么被认为是最佳实践:
def foo() -> None:
#do smth
Run Code Online (Sandbox Code Playgroud)
要么
from typing import NoReturn
def foo() -> NoReturn:
#do smth
Run Code Online (Sandbox Code Playgroud)