企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
目前为止,我们使用函数时所用的参数都是位置参数,即传入函数的实际参数必须与形式参数的数量和位置对应。而本节将介绍的关键字参数,则可以避免牢记参数位置的麻烦,令函数的调用和参数传递更加灵活方便。 关键字参数是指使用形式参数的名字来确定输入的参数值。通过此方式指定函数实参时,不再需要与形参的位置完全一致,只要将参数名写正确即可。 > 因此,Python函数的参数名应该具有更好的语义,这样程序可以立刻明确传入函数的每个参数的含义。 例如,在下面的程序中就使用到了关键字参数的形式给函数传参: ``` def dis_str(str1,str2): print("str1:",str1) print("str2:",str2) #位置参数 dis_str("http://x.linyiwang.cn/python/","http://x.linyiwang.cn/shell/") #关键字参数 dis_str("http://x.linyiwang.cn/python/",str2="http://x.linyiwang.cn/shell/") dis_str(str2="http://x.linyiwang.cn/python/",str1="http://x.linyiwang.cn/shell/") ``` 程序执行结果为: ``` str1: http://x.linyiwang.cn/python/ str2: http://x.linyiwang.cn/shell/ str1: http://x.linyiwang.cn/python/ str2: http://x.linyiwang.cn/shell/ str1: http://x.linyiwang.cn/shell/ str2: http://x.linyiwang.cn/python/ ``` 可以看到,在调用有参函数时,既可以根据位置参数来调用,也可以使用关键字参数(程序中第 8 行)来调用。在使用关键字参数调用时,可以任意调换参数传参的位置。 当然,还可以像第 7 行代码这样,使用位置参数和关键字参数混合传参的方式。但需要注意,混合传参时关键字参数必须位于所有的位置参数之后。也就是说,如下代码是错误的: ``` # 位置参数必须放在关键字参数之前,下面代码错误 dis_str(str1="http://x.linyiwang.cn/python/","http://x.linyiwang.cn/shell/") ``` Python 解释器会报如下错误: > SyntaxError: positional argument follows keyword argument