Python - 位置引數



位置引數

在定義函式時,在括號中宣告的變數列表是形式引數。這些引數也被稱為位置引數。一個函式可以定義任意數量的形式引數。

呼叫函式時 -

  • 所有引數都是必需的。

  • 實際引數的數量必須等於形式引數的數量。

  • 它們按定義順序獲取值。

  • 引數的型別必須匹配。

  • 形式引數和實際引數的名稱不必相同。

位置引數示例

讓我們討論一些位置引數的示例 -

示例 1

以下示例顯示了位置引數的使用。

def add(x,y):
   z = x+y
   print ("x={} y={} x+y={}".format(x,y,z))
a = 10
b = 20
add(a, b)

它將產生以下輸出 -

x=10 y=20 x+y=30

這裡,add() 函式有兩個形式引數,都是數字。當傳遞整數 10 和 20 時。"a" 變數獲取 10,"b" 變數獲取 20,按照宣告的順序。 add() 函式顯示加法結果。

示例 2

當引數數量不匹配時,Python 也會引發錯誤。如果您只提供一個引數並檢查結果,您將看到一個錯誤。

def add(x,y):
   z=x+y
   print (z)
a=10;
add(a)

生成的錯誤如下所示 -

TypeError: add() missing 1 required positional argument: 'y'

示例 3

類似地,如果您傳遞的引數數量超過形式引數的數量,將生成一個說明相同的錯誤 -

def add(x,y):
   z=x+y
   print ("x={} y={} x+y={}".format(x,y,z))
add(10, 20, 30)

以下是輸出 -

TypeError: add() takes 2 positional arguments but 3 were given

示例 4

相應的實際引數和形式引數的資料型別必須匹配。將 a 更改為字串值並檢視結果。

def add(x,y):
   z=x+y
   print (z)
a="Hello"
b=20
add(a,b)

它將產生以下錯誤 -

z=x+y
     ~^~
TypeError: can only concatenate str (not "int") to str

位置引數和關鍵字引數之間的區別

下表解釋了位置引數和關鍵字引數之間的區別 -

位置引數 關鍵字引數
僅使用引數名稱將資料傳遞給給定函式。 關鍵字引數以 name=value 的形式傳遞給函式。
引數按函式宣告中定義的順序傳遞。 傳遞引數時,可以更改其順序。

語法:function(param1, param2,...) 語法:function(param1 = value1,...)
廣告