python中的型別提示 定義函式時加入箭頭

2021-10-04 15:41:48 字數 703 閱讀 9763

偶爾看到一些**在定義函式時,在def那一行後面會加乙個->。這個玩意兒有個專門的名詞叫type hint, 即型別提示

官方**:

比如:

def add(a:int, b:int) -> int:

return a+b

這個表示並沒有多麼的神奇,意思是:告訴你期待的輸入型別和輸出型別。上面**期待的型別為int。

其實就是變數型別的動態定義和靜態定義的區別。同樣乙個函式可以不加->表示動態定義和加->表示靜態定義。

對於上面左邊函式,對n的資料型別不一定為int,也可以為float等等。。而右邊限定了只能int。

這就是動靜態的區別。

我試著尋找這兩者的區別和各自優勢。有以下發現:

1. 將動態型別函式改為靜態型別函式並不能使計算加快;

2. 就算你靜態限定了int,輸入為float的時候也不會報錯,輸出也不會變成期待的int型別。所以在使用上,動靜態型別並沒有區別。

那麼這個type hint看起來是比較雞肋。

它的用處有以下:

1. 增加**可讀性;

2. 比較容易用其他語言改寫。

python中的型別提示(定義函式時加入箭頭 )

看到一些 在定義函式時,在def那一行後面會加乙個 它有個專門的名詞叫type hint,即型別提示。官方 比如def add a int,b int int return a b 這個表示並沒有多麼的神奇,意思是 告訴你期待的輸入型別和輸出型別。上面 期待的型別為int。其實就是變數型別的動態定義...

python型別提示

一 型別提示的好處 1 增強 的可讀性 2 ide中 提示 3 靜態 檢查 第三方庫 二 ide中 中提示功能 1 為引數與返回資料指定型別 def greeting name str str str 返回值也可以 return hello name.split 指定之後就可以呼叫str的方法 gr...

陣列型別 typedef定義的陣列型別的函式呼叫

typedef 定義陣列型別 如下 vs2013 不能實現陣列傳遞 v1.0 typedef unsigned char elemtype 6 int return elemtype p p a return 1 main 用typedef 定義的陣列型別來定義指標 elemtype p 等價於ty...