天天看點

Python小知識-函數傳參怎麼設定期望的傳參類型?

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

Python小知識-函數傳參怎麼設定期望的傳參類型?

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編輯器就會有提醒出來:

Python小知識-函數傳參怎麼設定期望的傳參類型?

注意:

1、在普通的腳本中,函數定義的時候,參數上加上類型聲明後,隻是聲明一種期望接收的參數類型,傳入其他參數的時候隻是會告警而已,代碼運作不一定會報錯

2、在結合某些架構使用的時候,用這種方式定義參數類型時,參數類型可能是一種強制的類型校驗,在輸入不符合類型的參數調用時,架構會直接攔截你的請求,比如在fastapi架構中使用: