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

如何在Python中使用不定长参数?

发布时间:2023-12-03 15:08:58

在Python中,可以使用不定长参数来接受不确定数量的参数。不定长参数分为两种类型:*args和**kwargs。

*args代表接受任意数量的位置参数。在函数定义时,在参数前加上星号(*),可以将所有传递给函数的位置参数放入一个元组中,函数内部可以通过元组的索引来访问参数的值。

例如,下面的代码定义了一个函数,可以接受任意数量的参数,并输出每个参数的值:

def print_args(*args):
    for arg in args:
        print(arg)

print_args(1, 2, 3)  # 输出 1 2 3
print_args('a', 'b', 'c')  # 输出 a b c

**kwargs代表接受任意数量的关键字参数。在函数定义时,在参数前加上双星号(**),可以将所有传递给函数的关键字参数放入一个字典中,函数内部可以通过关键字来访问参数的值。

例如,下面的代码定义了一个函数,可以接受任意数量的关键字参数,并输出每个参数的键值对:

def print_kwargs(**kwargs):
    for key, value in kwargs.items():
        print(key, value)

print_kwargs(a=1, b=2)  # 输出 a 1, b 2
print_kwargs(name='John', age=30)  # 输出 name John, age 30

同时使用*args和**kwargs,则*args必须在**kwargs之前。

例如,下面的代码定义了一个函数,可以接受任意数量的位置参数和关键字参数,并输出每个参数的值:

def print_args_kwargs(*args, **kwargs):
    for arg in args:
        print(arg)
    for key, value in kwargs.items():
        print(key, value)

print_args_kwargs(1, 2, 3, a=4, b=5)  # 输出 1 2 3, a 4, b 5
print_args_kwargs(name='John', age=30, city='New York')  # 输出 name John, age 30, city New York

在使用不定长参数时,参数的顺序是按照位置参数和关键字参数的顺序来传递的。