Python - 關鍵字引數



關鍵字引數

Python 允許以關鍵字的形式傳遞函式引數,這些引數也稱為命名引數。 變數函式定義 中用作關鍵字。當呼叫函式時,您可以明確地提及名稱及其值。

使用關鍵字引數呼叫函式

以下示例演示了 Python 中的關鍵字引數。在第二個函式呼叫中,我們使用了關鍵字引數。

# Function definition is here
def printinfo( name, age ):
   "This prints a passed info into this function"
   print ("Name: ", name)
   print ("Age ", age)
   return

# Now you can call printinfo function
# by positional arguments
printinfo ("Naveen", 29)

# by keyword arguments
printinfo(name="miki", age = 30)

它將產生以下輸出 -

Name: Naveen
Age 29
Name: miki
Age 30

關鍵字引數的順序

預設情況下,函式按出現順序將值分配給引數。但是,在使用關鍵字引數時,不必遵循函式定義中形式引數的順序。關鍵字引數的使用是可選的。您可以使用混合呼叫。您可以將值傳遞給某些引數,而無需使用關鍵字,而對於其他引數則使用關鍵字。

示例

讓我們嘗試藉助以下函式定義來理解 -

def division(num, den):
   quotient = num/den
   print ("num:{} den:{} quotient:{}".format(num, den, quotient))

division(10,5)
division(5,10)

由於值是根據位置分配的,因此輸出如下 -

num:10 den:5 quotient:2.0
num:5 den:10 quotient:0.5

示例

而不是使用位置引數傳遞值,讓我們使用關鍵字引數呼叫函式 -

def division(num, den):
   quotient = num/den
   print ("num:{} den:{} quotient:{}".format(num, den, quotient))
   
division(num=10, den=5)
division(den=5, num=10)

與位置引數不同,關鍵字引數的順序無關緊要。因此,它將產生以下輸出 -

num:10 den:5 quotient:2.0
num:10 den:5 quotient:2.0

但是,在使用混合呼叫時,位置引數必須位於關鍵字引數之前。

示例

嘗試使用關鍵字引數以及位置引數呼叫 division() 函式。

def division(num, den):
   quotient = num/den
   print ("num:{} den:{} quotient:{}".format(num, den, quotient))

division(num = 5, 10)

由於位置引數不能出現在關鍵字引數之後,因此 Python 丟擲以下錯誤訊息 -

    division(num=5, 10)
                      ^
SyntaxError: non-keyword arg after keyword arg
廣告