每次函数什么都不返回时,这是编写 -> None 的好习惯吗?

mR-*_*caj 4 python

-> None当函数不返回任何内容时,这是一种编写的好习惯吗?

def nothing() -> None:
   print("Hey I'm not returning anything!")
Run Code Online (Sandbox Code Playgroud)

Car*_*ate 7

是的,我会养成这样的习惯。如果您无论如何都在使用类型提示,-> None则比将其留空更一致。

如果您还更改了函数返回的内容,返回的类型提示也将有助于缩小类型警告的原因。


之前,我写过:

使用好的 IDE,如果您尝试使用 的返回值,您也会收到警告nothing

# Warning: "Function 'nothing' doesn't return anything" (Pycharm)
a = nothing()
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,即使没有注释,Pycharm 实际上也足够聪明,可以推断出这一点。

使用更笨的 IDE,它可能仍然会在产生的警告上有所不同,尽管我希望任何足够聪明的 IDE 也足够-> None聪明以静态推断-> None.