16

使用 python 3,可以选择使用类型提示。

我的问题是,如果一个函数返回 None,应该添加这个,还是留空。

IE

def hint(p:str) -> None:
    pass

def no_hint(p:str):
    pass

哪个 PEP 解决了这个问题?

4

1 回答 1

22

明确并始终包含-> None返回的函数None

那是因为否则,对于不带参数的函数,类型检查器将假定您根本没有使用类型提示。例如,是def foo():要返回None,还是根本没有类型提示?

PEP 484 -类型提示间接解决了这个问题:

请注意,返回类型__init__应该用-> None. 原因很微妙。如果__init__假设返回注释为-> None,那是否意味着__init__仍应对无参数、未注释的方法进行类型检查?与其留下这个模棱两可或引入异常的异常,我们只是说__init__应该有一个返回注解;因此,默认行为与其他方法相同。

于 2018-01-12T09:51:24.877 回答