2016-04-22 183 views
14

在蟒蛇3.x中,常見的是用一個函數的返回類型的註釋,如:Python的返回類型爲void註釋

def foo() -> str: 
    return "bar" 

什麼是「空缺」類型正確標註?用最好的語法

  1. def foo() -> None:
    • 不符合邏輯IMO,因爲None不是一個類型,
  2. def foo() -> type(None):
    • 我考慮的3個選項我知道獲得NoneType

  3. def foo():
    • 省略明確的返回類型的信息。

選項2似乎是最合乎邏輯的我,但我已經看到了1

+1

FWIW,Python沒有'void'返回類型的函數。沒有顯式'return'的任何函數(或函數中的分支)都會返回'None'。我認爲OP意識到這一點,主要是爲了未來讀者的利益...... –

回答

18

某些情況下,這是直接從PEP 484 -- Type Hints文檔:

當使用類型提示,表達None被認爲等同於type(None)

而且,正如您所看到的,大多數示例使用None作爲返回類型。

+3

爲了澄清,選擇上面的選項1。 –

+2

NoReturn類型https://www.python.org/dev/peps/pep-0484/#the-noreturn-type? – asmaier

+1

@asmaier根據[這個問題](https://stackoverflow.com/questions/38570144/type-hint-that-a-function-never-returns)引用[PEP 484 - 類型提示](https:// www.python.org/dev/peps/pep-0484/) 'NoReturn'類型用於「...註釋永遠不會正常返回的函數,例如,無條件引發異常的函數......」 –

相關問題