學過java的同學都知道,java程式設計語言中,我們在定義函數的時候,函數的傳參必須指定類型,否則的話會報錯。而且在調用的時候,會顯示出來某個函數可以傳入的參數的類型:

java裡面定義的sum函數的代碼:
package com.xiaobotester.demo;
public class Temp {
public static String sum(int a, int b) {
return String.valueOf(a + b);
}
public static String sum() {
return "this is a test";
}
public static String sum(String a, String b) {
return a + b;
}
public static void main(String[] args) {
System.out.println("歡迎閱讀公衆号:小博測試成長之路的文章,歡迎點贊關注支援喔~");
System.out.println(Temp.sum(1,2));
System.out.println(Temp.sum("1","2"));
}
}
接下來我們再看看一下python語言,在我初學python的時候,定義函數是這樣的:
def test(x, y):
return x + y
那麼,對于上面這樣的定義方式,如果參數命名不能見名知意的話,其他人在調用的時候,都不知道應該傳什麼類型的值進去。那麼傳錯參數的話,可能得到的就是錯誤的預期結果。
def sum(x, y):
return x + y
print(sum(1, 2))
print(sum("1", "2"))
看上面的幾行代碼,在調用的時候都不會報錯。最起碼要在運作的時候才知道有沒有問題,這樣的話體驗不太好。
在定義函數的時候,我們可以在某個參數後面加上冒号以及類型,聲明一下這個函數所期望接收的參數類型,這樣的話,在調用函數的時候,如果傳入的參數類型不是所期望的,pycharm編輯器就會有提醒出來:
注意:
1、在普通的腳本中,函數定義的時候,參數上加上類型聲明後,隻是聲明一種期望接收的參數類型,傳入其他參數的時候隻是會告警而已,代碼運作不一定會報錯
2、在結合某些架構使用的時候,用這種方式定義參數類型時,參數類型可能是一種強制的類型校驗,在輸入不符合類型的參數調用時,架構會直接攔截你的請求,比如在fastapi架構中使用: