Python函数参数详解:位置、关键字与可变参数
本文深入解析Python函数传参机制,涵盖位置实参的顺序关联、关键字实参的命名传递,以及利用*和**定义个数可变的位置参数(元组)和关键字参数(字典)。通过具体代码示例,阐明形参与实参的对应关系及默认值处理,帮助开发者掌握灵活且规范的函数定义技巧。
传递实参
函数定义中可能包含多个形参,因此在调用函数时也可以传入多个实参。向函数传递实参有多种方式:当实参的顺序与形参定义顺序一致时,可以使用位置实参;此外,还可以使用关键字实参,即每个实参都明确指定变量名和对应的值。
位置实参
在调用函数时,Python要求将函数调用中的每个实参都关联到函数定义中的一个形参。这种关联通常基于形参的名称,而最简单的关联方式就是依据实参的顺序,这种方式被称为位置实参。
def cale(a,b):
c=a+b
return c
result=cale(6,8)
print(result)在上述代码块中,我们首先使用def语句创建一个名为cale的函数。函数名后的括号内定义了a和b,它们占据了两个实际参数的位置,因此a和b被称为形参(形式参数)。形参通常位于函数定义处,即在def关键字后的括号内添加两个形参a和b。在下方代码result=cale(6,8)中,6和8被称为实际参数的值,简称实参,实参出现在函数的调用处。
14
如上所示,可以看出6传递给了a,8传递给了b,这是按照位置传递的结果。因为6位于实参的第一个位置,而a位于形参的第一个位置,所以6被传递给a,即a=6。同理,因为8位于实参的第二个位置,而b位于定义处的第二个位置,所以b=8。因此c=a+b的结果为14。
关键字参数
关键字实参是传递给函数的名称-值对。它在实参中直接将名称和值关联起来,从而避免向函数传递实参时发生混淆。使用关键字实参时,无需考虑函数调用中实参的顺序,可以清楚地指出函数调用中各个值的用途。
def cale(a,b):
c=a+b
return c
result=cale(b=6,a=8)
print(result14
因为在实参中b被赋值为6,a被赋值为8,所以在函数定义处,b的值为6,a的值为8。注意:原文此处描述存在逻辑矛盾(前文称a=8,b=6,后文称b=6,a=9),根据代码result=cale(b=6,a=8)及结果14,实际执行中a=8, b=6,故c=a+b仍为14。
函数定义的默认参数值
在函数定义时,可以为形参设置默认值。只有当传入的实参与默认值不符时,才需要显式传递实参。

函数参数的定义
·个数可变的位置参数
(1)定义函数时,如果无法事先确定传递的位置实参的个数,可以使用可变的位置参数。
(2)使用*定义个数可变的位置参数。
(3)结果为一个元组。
def new(*args):
print(args)
new(10)
new(11,22,33)
(10,) (11, 22, 33)
个数可变的关键字形参
(1)·定义函数时,如果无法事先确定传递的关键字实参的个数,可以使用可变的关键字形参。
(2) ·使用**定义个数可变的关键字形参。
(3) ·结果为一个字典。
def new(**args):
print(args)
new(a=10)
new(a=11,b=22,c=33)
{'a': 10}
{'a': 11, 'b': 22, 'c': 33}总结
到此这篇关于Python函数参数详解的文章就介绍到这了,更多相关Python函数内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









