Python函数参数详解:位置、关键字与可变参数

南乔
南乔
发布时间:2026-10-12 | 3人浏览过
原创

本文深入解析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(result

14

因为在实参中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函数内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表