Python关键字参数 图片看不了?点击切换HTTP 返回上层
目前为止,我们使用函数时所用的参数都是位置参数,即传入函数的实际参数必须与形式参数的数量和位置对应。而本节将介绍的关键字参数,则可以避免牢记参数位置的麻烦,令函数的调用和参数传递更加灵活方便。
关键字参数是指使用形式参数的名字来确定输入的参数值。通过此方式指定函数实参时,不再需要与形参的位置完全一致,只要将参数名写正确即可。
接下来在调用该函数时,既可使用传统的根据位置参数来调用(如上面程序中第 7 行代码所示),也可根据关键字参数来调用(如上面程序中第 9 行代码所示),在使用关键字参数调用时可交换参数的位置(如上面程序中第 11 行代码所示〕,还可混合使用位置参数和关键字参数(如上面程序中第 13 行代码所示)。
需要说明的是,如果希望在调用函数时混合使用关键字参数和位置参数,则关键字参数必须位于位置参数之后。换句话说,在关键字参数之后的只能是关键字参数。例如如下代码是错误的:
关键字参数是指使用形式参数的名字来确定输入的参数值。通过此方式指定函数实参时,不再需要与形参的位置完全一致,只要将参数名写正确即可。
因此,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