python中多参数*args和**kargs学习

来源:互联网 发布:网络情歌2015 编辑:程序博客网 时间:2024/05/18 13:47

    当函数的参数不确定时,我们可以使用*args 和**kwargs。一般*args 无key值,**kwargs有key值


1 *args代码示例


def fun_args(arg, *args):    print "arg:", arg    for val in args:        print "another arg:", valargs = [[2,3,4,5],[6,7], "my", 4.5]#fun_args(1, args)  #调用方式1,常见的方式fun_args(1, *args) #调用方式2,明示args是多参数方式fun_args(1, [2,3,4,5],[6,7], "my", 4.5) #调用方式3

输出结果:

1)fun_args(1, *args), 形参方式横向

arg: 1
another arg: [[2, 3, 4, 5], [6, 7], 'my', 4.5]

2)fun_args(1, [2,3,4,5],[6,7], "my", 4.5),直接给实参竖向
arg: 1
another arg: [2, 3, 4, 5]
another arg: [6, 7]
another arg: my
another arg: 4.5


2 **kwargs代码示例

形参和实参均使用**kwargs

def fun_kwargs(farg, **kwargs):    print "arg:", farg    for key in kwargs:        print "another key and arg: %s: %s" % (key, kwargs[key])fun_kwargs(farg=1, myarg2="two", myarg3=3)dic = {"args2":"two", "args3":3}fun_kwargs(fargs=1, **dic) #调用方式1


func_kwargs(1, args2='two', args3=3)  调用方式2

实参使用**kwargs,但是形参使用独立参数,要求实参key名与形参名一致否则不可调用

def fun_kwargs1(arg1, arg2, arg3):    print "arg1:", arg1    print "arg2:", arg2    print "arg3:", arg3kwargs = {"arg2":"two", "arg3":3}fun_kwargs1(1, **kwargs)




0 0