Python函数可变参数args及kwargs

python函数可变参数 (Variable Argument)

  1. *args是可变的positional arguments列表(位置参数列表)
  2. **kwargs是可变的keyword arguments列表(关键字参数列表)
  3. *args必须位于**kwargs之前,因为positional arguments必须位于keyword arguments之前
  4. *args表示任何多个无名参数,它是一个tuple
  5. **kwargs表示关键字参数,它是一个dict
  6. 同时使用*args和kwargs时,*args参数列必须要在kwargs前,要是像func(1, a=1, b=2, c=3, 2, 3)这样调用的话,则会提示语法错误“SyntaxError: non-keyword arg after keyword arg”
def func(*args, **kwargs):
    print('*args:', args, len(args))
    print('**kwargs', kwargs, len(kwargs))
    print('************')
    
func(1,2,3,4)
func(a = 'mm', b = 'bn', c = 'md')
func(1,2,3,4, a = 'mm', b = 'bn', c = 'md')
func(1,'b','c',2, 888, a=1,b='b',c='c')
*args: (1, 2, 3, 4) 4
**kwargs {} 0
************
*args: () 0
**kwargs {'a': 'mm', 'b': 'bn', 'c': 'md'} 3
************
*args: (1, 2, 3, 4) 4
**kwargs {'a': 'mm', 'b': 'bn', 'c': 'md'} 3
************
*args: (1, 'b', 'c', 2, 888) 5
**kwargs {'a': 1, 'b': 'b', 'c': 'c'} 3
************
def func(*args, **kwargs):
    print('*args:', args, len(args))
    print('**kwargs', kwargs, len(kwargs))
    print('************')
func(13, a = 'mm', b = 'bn', c = 'md', 23,1344) 
  File "<ipython-input-22-566e747bf425>", line 5
    func(13, a = 'mm', b = 'bn', c = 'md', 23,1344)
                                           ^
SyntaxError: positional argument follows keyword argument
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值