关键字参数
Python 允许以关键字的形式传递函数参数,这些关键字也称为命名参数。函数定义中的变量用作关键字。调用函数时,您可以显式提及名称及其值。
使用关键字参数调用函数
以下示例演示了 Python 中的关键字参数。在第二个函数调用中,我们使用了关键字参数。
# 在这里定义函数
def printinfo( name, age ):
"This prints a passed info into this function"
print ("Name: ", name)
print ("Age ", age)
return
# 现在你可以调用printinfo函数了
# 通过位置论证
printinfo ("Naveen", 29)
# 按关键字参数
printinfo(name="miki", age = 30)
它将产生以下输出 -
Name: Naveen
Age 29
Name: miki
Age 30
Age 29
Name: miki
Age 30
关键字参数的顺序
默认情况下,该函数按出现顺序将值分配给参数。但是,在使用关键字参数时,不必遵循函数定义中形式参数的顺序。关键字参数的使用是可选的。您可以使用混合呼叫。您可以将值传递给一些不带 keywords 的参数,而将值传递给其他参数。
例让我们尝试借助以下函数定义来理解 -
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
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
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)
由于 Positional 参数不能出现在关键字参数之后,因此 Python 会引发以下错误消息 -
division(num=5, 10)
^
SyntaxError: non-keyword arg after keyword arg
^
SyntaxError: non-keyword arg after keyword arg