Python 任意数量位置参数*args和关键字参数**kwargs

在 Python 中,*args**kwargs 是两种特殊的参数形式,用于接收可变数量的参数。它们的位置关系如下:

def func(*args, **kwargs):
    pass
  1. *args(位置参数):

    • *args 用于接收任意数量的位置参数,并将它们打包成一个元组(tuple)。
    • *args 必须位于所有位置参数的最后一个,即在所有普通位置参数之后。
    • 在函数内部,可以使用 args 变量来访问这些位置参数。
  2. **kwargs(关键字参数):

    • **kwargs 用于接收任意数量的关键字参数,并将它们打包成一个字典(dict)。
    • **kwargs 必须位于所有参数的最后一个,即在 *args 之后(如果有的话)。
    • 在函数内部,可以使用 kwargs 变量来访问这些关键字参数。

下面是一个示例,演示了 *args**kwargs 的位置关系:

def my_function(a, b, *args, c=10, **kwargs):
    print("位置参数 a:", a)
    print("位置参数 b:", b)
    print("可变位置参数 args:", args)
    print("关键字参数 c:", c)
    print("可变关键字参数 kwargs:", kwargs)

my_function(1, 2, 3, 4, 5, c=20, d=30, e=40)

输出结果:

位置参数 a: 1
位置参数 b: 2
可变位置参数 args: (3, 4, 5)
关键字参数 c: 20
可变关键字参数 kwargs: {'d': 30, 'e': 40}

在这个例子中,参数的位置关系如下:

  1. 位置参数 ab 在最前面。
  2. 可变位置参数 *args 紧跟在位置参数之后,接收剩余的位置参数 3, 4, 5
  3. 关键字参数 c 在可变位置参数之后,有默认值 10,可以通过关键字参数传递新的值。
  4. 可变关键字参数 **kwargs 在最后,接收额外的关键字参数 d=30, e=40

总结:

  • *args 必须位于所有位置参数之后。
  • **kwargs 必须位于所有参数的最后,包括 *args
  • 普通位置参数、*args、普通关键字参数和 **kwargs 的顺序不能改变。
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值