Python可变参数*args和*kwargs

1.   在函数定义处,*args表示变长非关键字参数

 
def demo_1(*args):
    print(args)
demo_1(1,2,3)
    函数的输出为:
(1, 2, 3)

    可以看出args表示的是一个元组,在函数调用的时候,传入多少个参数都可(不传也行)

    其简单应用可以看下例:

 
def test_var(formalarg,*args):
         print("formal_arg:",formalarg)
         for arg in args:
            print("var_arg:",arg)
test_var(1,2,3,4)
    输出的结果为:
formal_arg: 1
var_arg: 2
var_arg: 3
var_arg: 4

2.   在函数定义处,**kwargs表示变长关键字参数

 
def demo_2(**kwargs):
    print(kwargs)
demo_2(k=1,w=2)
    函数的输出为:
 
{'k': 1, 'w': 2}
    可以看出kwargs表示的是一个字典,函数调用的时候,传入多少个参数都行(不传也行)。

    其简单应用如下例:    

def test_var(formalarg,**kwargs):
    print("formal_arg:",formalarg)
    for k,v in kwargs.items():
        print("%s=>%s"%(k,v))
test_var(1,a=1,b=2,c=3)

    输出为:

formal_arg: 1
a=>1
b=>2
c=>3

3.   变长参数还可以在函数调用的时候使用

    如下例:

def test_var_args_call(arg0,arg1, arg2, arg4):
    print("arg0:",arg0)
    print("arg1:", arg1)
    print("arg2:", arg2)
    print("arg4:", arg4)
args=(1,2)
kwargs={"arg4":4}
test_var_args_call(0,*args,**kwargs)

    输出为:

arg0: 0
arg1: 1
arg2: 2
arg4: 4

对字典解包的时候,字典中的键要为函数中包含的关键字参数,否则会出错。

4.   *args还可以在赋值的时候使用

也是代表变长的元素,不过,此时,args的类型为列表

In [19]: a,*b,c=list(range(5))

In [20]: b
Out[20]: [1, 2, 3]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值