Python函数关键字参数及用法

< 上一页Python位置参数 Python默认参数下一页 >

目前为止,我们使用函数时所用的参数都是位置参数,即传入函数的实际参数必须与形式参数的数量和位置对应。而本节将介绍的关键字参数,则可以避免牢记参数位置的麻烦,令函数的调用和参数传递更加灵活方便。

关键字参数是指使用形式参数的名字来确定输入的参数值。通过此方式指定函数实参时,不再需要与形参的位置完全一致,只要将参数名写正确即可。

因此,Python 函数的参数名应该具有更好的语义,这样程序可以立刻明确传入函数的每个参数的含义。

例如如下程序:
# 定义一个函数
def girth(width , height):
    print("width: ", width)
    print("height: ", height)
    return 2 * (width + height)
# 传统调用函数的方式,根据位置传入参数
print(girth(3.5, 4.8))
# 根据关键字参数来传入参数
print(girth(width = 3.5, height = 4.8))
# 使用关键字参数时可交换位置
print(girth(height = 4.8, width = 3.5))
# 部分使用关键字参数,部分使用位置参数
print(girth(3.5, height = 4.8))
上面程序定义了一个简单的 girth() 函数,该函数包含 width、height 两个参数,该函数与前面定义的函数并没有任何区别。

接下来在调用该函数时,既可使用传统的根据位置参数来调用(如上面程序中第 7 行代码所示),也可根据关键字参数来调用(如上面程序中第 9 行代码所示),在使用关键字参数调用时可交换参数的位置(如上面程序中第 11 行代码所示〕,还可混合使用位置参数和关键字参数(如上面程序中第 13 行代码所示)。

需要说明的是,如果希望在调用函数时混合使用关键字参数和位置参数,则关键字参数必须位于位置参数之后。换句话说,在关键字参数之后的只能是关键字参数。例如如下代码是错误的:

# 位置参数必须放在关键字参数之前,下面代码错误
print(girth(width = 3.5, 4.8))

运行上面代码,将会提示如下错误:

SyntaxError: positional argument follows keyword argument

< 上一页Python位置参数 Python默认参数下一页 >