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

2022-10-03 18:27:13 字數 1154 閱讀 2758

看到一些**在定義函式時,在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. 比較容易用其他語言改寫。

例子:

#

!/usr/bin/python3

#-*- coding:utf-8 -*-

def twosum(num1: int, num2: int=100) ->int:

sum = num1 +num2

return

sum

if__name__ == "

__main__":

print(twosum.__annotations__

)

print(twosum(1,2))

print(twosum(1))

print(twosum('

i love

','arsenal'))

#print(twosum('arsenal'))

3101i love arsenal

幾點解釋:

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...