欢迎访问宙启技术站
智能推送

如何在Python中定义不定长参数的函数

发布时间:2023-12-03 20:46:16

在Python中,我们可以使用星号(*)来定义不定长参数的函数。不定长参数允许我们传入任意数量的参数给函数。

1. 定义只有不定长位置参数的函数:

def func(*args):
    # args是一个包含所有位置参数的元组
    for arg in args:
        print(arg)

func(1, 2, 3)  # 输出:1, 2, 3
func(4, 5)  # 输出:4, 5

在这个例子中,我们使用了星号(*)来定义了一个参数args,它可以接收0个或多个位置参数,并将它们作为一个元组传递给函数。

2. 定义只有不定长关键字参数的函数:

def func(**kwargs):
    # kwargs是一个包含所有关键字参数的字典
    for key, value in kwargs.items():
        print(key, value)

func(name="Alice", age=25)  # 输出:name Alice, age 25
func(city="New York")  # 输出:city New York

在这个例子中,我们使用了两个星号(**)来定义了一个参数kwargs,它可以接收0个或多个关键字参数,并将它们作为一个字典传递给函数。

3. 定义同时包含不定长位置参数和不定长关键字参数的函数:

def func(*args, **kwargs):
    # 处理位置参数
    for arg in args:
        print(arg)
    
    # 处理关键字参数
    for key, value in kwargs.items():
        print(key, value)

func(1, 2, 3, name="Alice", age=25)

在这个例子中,我们同时使用星号(*)和两个星号(**)来定义了两个参数argskwargs,这样函数可以同时接收任意数量的位置参数和关键字参数。

不定长参数的函数在编写可变参数函数或者装饰器时非常有用,能够处理不同数量的参数。通过参数的星号(*)或者两个星号(**)定义不定长参数,可以方便地接受和处理不同数量的参数。