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
广告