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

让我们使用关键字参数调用函数,而不是使用位置参数传递值 -

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(10, den=5)

但是,使用混合调用时,位置参数必须位于关键字参数之前。

尝试使用以下语句调用 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