Python中函数的可变参数是指能够接收任意个参数的函数参数。在函数定义中,可变参数使用“*”号进行定义,其实现原理是将一系列参数打包成一个元组(tuple)。在函数调用时,可以直接传入多个参数,也可以传入一个列表或元组作为可变参数的取值。
下面是使用可变参数的完整攻略:
基本语法
函数的可变参数定义方式如下:
def func(*args):
# do something
上述代码中,我们使用”*args”代表可变参数,可变参数表示为一个元组,元组中包含了调用函数时传入的所有参数。在函数体中,我们可以通过tuple类型的”args”变量来访问这些参数。
注意,可变参数必须放在函数参数列表的最后一个。
当我们需要利用可变参数传入多个值时,我们可以使用以下方式:
def my_sum(*args):
s = 0
for i in args:
s += i
return s
print(my_sum(1, 2, 3, 4)) # 输出10
在上述实例中,我们使用了可变参数列表计算传入的所有参数的和,函数my_sum接收了一个包含任意个数值的可变参数列表args,使用for循环对这些数值进行累加。
实例解析
实例一
def foo(a, b, *args):
print('a =', a)
print('b =', b)
print('args =', args)
foo(1, 2, 3, 4, 5)
输出:
a = 1
b = 2
args = (3, 4, 5)
这个例子展示了如何在函数中使用可变参数。foo函数拥有两个必须参数a和b以及一个可选参数args。当我们调用foo函数时,传递多个值给args,这些值会组成一个元组(args)作为foo函数的一个参数。
实例二
def bar(**kwargs):
for key in kwargs:
print(key, ":", kwargs[key])
bar(name='Tom', age=18, gender='male')
输出:
name : Tom
age : 18
gender : male
这个例子展示了如何使用**kwargs可变参数。在bar函数中,我们使用关键字参数(参数名前加上两个星号)定义了一个新的参数kwargs,kwargs在函数体内是一个字典类型,包含了我们传入函数的所有关键字参数。
在bar函数体内,我们可像操作字典一样遍历kwargs字典并打印每个键值对。