python函数的可变参数是什么,如何使用?

  • Post category:Python

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字典并打印每个键值对。