python函数不定参数如何设置

python函数不定参数如何设置

作者:Joshua Lee发布时间:2026-01-13阅读时长:0 分钟阅读次数:11

用户关注问题

Q
如何在Python函数中接收任意数量的位置参数?

我想定义一个函数,可以接受不确定数量的位置参数,应该怎么设置参数?

A

使用*args接收任意数量的位置参数

在Python中,可以通过在函数参数前加一个星号()来接收任意数量的位置参数。通常使用args作为参数名称,函数内部args会以元组的形式存储传入的所有位置参数。例如:

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

func(1, 2, 3)

这段代码允许你传入任意多个位置参数。

Q
Python函数如何接收任意数量的关键字参数?

想写一个函数,可以接受不定数量的命名参数,该怎么写?

A

使用kwargs接收任意数量的关键字参数

在函数定义时,在参数前加两个星号()可以接收任意数量的关键字参数,这些参数会以字典的形式传进函数。一般使用kwargs作为参数名称。

示例:

def func(kwargs):
    for key, value in kwargs.items():
        print(f'{key}: {value}')

func(a=1, b=2)

函数调用时传入的命名参数会被封装进kwargs字典中。

Q
Python函数同时使用*args和**kwargs时应注意什么?

函数定义中同时包含*args和**kwargs,调用时需要遵循哪些规则?

A

参数顺序和调用规则

在函数定义时,args必须出现在普通位置参数之后,kwargs必须放在参数列表的最后。调用时,位置参数会被args接收,关键字参数会被kwargs接收。

例子:

def func(x, *args, y=10, **kwargs):
    print(x, args, y, kwargs)

func(1, 2, 3, y=20, z=30)

这里1赋值给x,2和3给args,y接收20,z放入kwargs。注意调用时确保关键字参数不与普通参数冲突。