Python允许以关键字的形式传递函数参数,这些也称为命名参数。函数定义中的变量用作关键字。当调用函数时,可以明确地指定名称及其值。
使用关键字参数调用函数
下面的例子演示了Python中的关键字参数。在第二次函数调用中,我们使用了关键字参数。
def printinfo(name, age):
"这将在函数中打印传递的信息"
print("姓名: ", name)
print("年龄 ", age)
return
printinfo("Naveen", 29)
printinfo(name="miki", age=30)
它将产生如下的输出:
姓名: Naveen
年龄 29
姓名: miki
年龄 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 ar