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

Python函数的不定长参数

发布时间:2023-07-02 16:22:04

Python中的函数不定长参数指的是可以接受任意数量的参数的函数。Python中有两种不定长参数的定义方式:*args和**kwargs。

*args参数: *args用于函数定义中,可以接受任意数量的非关键字参数。在函数内部,这些参数会被当作元组(tuple)来处理。

例如:

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

my_func(1, 2, 3, 4)

输出结果:

1
2
3
4

**kwargs参数:**kwargs用于函数定义中,可以接受任意数量的关键字参数。在函数内部,这些参数会被当作字典(dictionary)来处理。

例如:

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

my_func(name="Alice", age=25, city="New York")

输出结果:

name Alice
age 25
city New York

同时使用*args和**kwargs可以接受任意数量的非关键字参数和关键字参数。

例如:

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

my_func(1, 2, name="Alice", age=25)

输出结果:

1
2
name Alice
age 25

不定长参数可以和普通参数一起使用,但是普通参数必须在不定长参数之前定义。

例如:

def my_func(age, *args, **kwargs):
    print("Age:", age)
    for arg in args:
        print(arg)
    for key, value in kwargs.items():
        print(key, value)

my_func(25, 1, 2, name="Alice", city="New York")

输出结果:

Age: 25
1
2
name Alice
city New York

不定长参数的使用可以让函数更加灵活,可以接受不同数量和类型的参数。在编写函数时,如果不确定函数会接受多少参数或者参数的具体名称和类型,可以使用不定长参数来处理。