python中的不定长位置参数*args和不定长关键字参数*kwargs说明

本文介绍了Python中如何使用不定长位置参数*args和不定长关键字参数**kwargs,以及如何同时使用两者。*args将位置参数收集到元组,**kwargs则将关键字参数收集到字典。示例展示了如何定义和调用这类函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 不定长位置参数*args

不定长位置参数指的是函数可以接受任意数量的位置参数,这些参数将被收集到一个元组中,并作为一个参数传递给函数。不定长位置参数用星号 * 来表示。

pythondef func(*args):
    # 函数体
    pass

在上面的例子中,函数 func() 可以接受任意数量的位置参数,并将它们收集到一个元组 args 中。

例如,下面的函数将所有位置参数相加并返回结果:

pythondef sum(*args):
    total = 0
    for arg in args:
        total += arg
    return total

可以通过传递任意数量的位置参数来调用 sum() 函数:

pythonresult1 = sum(1, 2, 3)  # result1 = 6
result2 = sum(10, 20, 30, 40, 50)  # result2 = 150

2. 不定长关键字参数*kwargs

不定长关键字参数指的是函数可以接受任意数量的关键字参数,这些参数将被收集到一个字典中,并作为一个参数传递给函数。不定长关键字参数用两个星号 ** 来表示。

pythondef func(**kwargs):
    # 函数体
    pass

在上面的例子中,函数 func() 可以接受任意数量的关键字参数,并将它们收集到一个字典 kwargs 中。

例如,下面的函数将所有关键字参数的值相乘并返回结果:

pythondef product(**kwargs):
    result = 1
    for key in kwargs:
        result *= kwargs[key]
    return result

可以通过传递任意数量的关键字参数来调用 product() 函数:

pythonresult1 = product(x=1, y=2, z=3)  # result1 = 6
result2 = product(a=10, b=20, c=30, d=40, e=50)  # result2 = 12000000

3. 同时使用不定长位置参数和不定长关键字参数

需要注意的是,不定长位置参数和不定长关键字参数不能同时出现在同一个函数的参数列表中。如果需要同时使用这两种参数,可以在参数列表中先指定不定长位置参数,再指定不定长关键字参数。

pythondef func(*args, **kwargs):
    # 函数体
    pass

在上面的例子中,函数 func() 可以接受任意数量的位置参数和关键字参数。需要注意的是,位置参数将被收集到一个元组 args 中,而关键字参数将被收集到一个字典 kwargs 中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值