python中可变参数函数

  • Post category:Python

可变参数是指在函数调用时,允许向函数传递不定长度的参数,Python中有两种可变参数:args和*kwargs。

使用*args实现可变参数函数

当我们在定义函数时,在形参名前添加,表示可接受不定数量的参数,即args。下面是一个例子:

def add(*args):
    total = 0
    for num in args:
        total += num
    return total

print(add(1, 2, 3)) # 6
print(add(1, 2, 3, 4, 5)) # 15

在这个例子中,add函数接受不定个数的参数,并对它们求和,返回结果。我们通过调用add函数,传入多个参数,从而得到不同的结果。

使用**kwargs实现可变参数函数

当我们在定义函数时,在形参名前添加,表示可接受不定数量的关键字参数,即kwargs。下面是一个例子:

def greet(**kwargs):
    for key, value in kwargs.items():
        print(key + ": " + value)

greet(name="John", age="30", location="New York")

在这个例子中,greet函数接受不定数量的关键字参数,并逐个打印出每个参数的名称和值。我们通过调用greet函数,传入多个关键字参数,从而得到不同的结果。

同时使用args和*kwargs

有时候,我们需要同时使用可变数量的位置参数和关键字参数,这时可以在定义函数时同时使用args和*kwargs。下面是一个例子:

def print_info(name, *args, **kwargs):
    print("Name:", name)
    print("Args:")
    for arg in args:
        print("- " + arg)
    print("Kwargs:")
    for key, value in kwargs.items():
        print("- " + key + ": " + value)

print_info("John", "Male", "30", location="New York", hobby="Reading")

在这个例子中,print_info函数除了接受一个名称参数,还可以接受不定数量的位置参数和关键字参数。我们通过调用print_info函数,传入不同数量的位置参数和关键字参数,从而得到不同的结果。