【发布时间】:2016-08-16 06:55:46
【问题描述】:
在python 3.x中,常用函数的返回类型注解,如:
def foo() -> str:
return "bar"
“void”类型的正确注解是什么?
我正在考虑 3 个选项:
-
def foo() -> None:- 不是逻辑 IMO,因为
None不是类型,
- 不是逻辑 IMO,因为
-
def foo() -> type(None):- 使用我知道的最佳语法来获取
NoneType,
- 使用我知道的最佳语法来获取
-
def foo():- 省略显式返回类型信息。
选项 2. 对我来说似乎最合乎逻辑,但我已经看到了一些 1 的实例。
【问题讨论】:
-
FWIW,Python 没有
void返回类型的函数。任何没有显式return的函数(或函数中的分支)都将返回None。我假设 OP 明白,此评论主要是为了未来读者的利益...... -
嗯,这个问题不像“为什么我的函数在 Python 中返回 None?”那么受欢迎。 (我提出了这个问题),所以可能大多数读者已经知道默认行为。 1 vs 2的困境在答案中得到解决。但是3呢?对于“程序”,我实际上更喜欢选项 3,没有无用的混乱(毕竟,这个函数不返回任何东西)。
-
@TomaszGandor 同意。当函数或方法不包含 return 语句时,无需指定其返回类型。
标签: python annotations void type-hinting python-typing