python 变长参数

一直不太理解python中的变长参数,网上找了一些资料发现变长参数在python中直接当元组(tuple)或字典(dict),这样就非常好理解,并且传参和在函数中取值也就很清楚了。

*args   --  tuple

**kargs  --  dict


上代码:

#coding:utf8

def powersum(power, **args):
    print type(args)
    print "args is %s" % args
    for k,v in args.items():
        print k,":",v
    print

y = {'age':18, 'name':'xxmcf'}

powersum(0, **y)

powersum(0, args=y)

powersum(0, aaa=111, bbb=111) 
结果:

<type 'dict'>
args is {'age': 18, 'name': 'xxmcf'}
age : 18
name : xxmcf

<type 'dict'>
args is {'args': {'age': 18, 'name': 'xxmcf'}}
args : {'age': 18, 'name': 'xxmcf'}

<type 'dict'>
args is {'aaa': 111, 'bbb': 111}
aaa : 111
bbb : 111


这里有一个值得注意的地方:

直接传字典是可以的, 以键值对的形式传会认为是字典,但把字典赋给参数名,并不会将字典展开,而是认为是一个键值对,如上

powersum(0, args=y),虽然y是一个字典,但会认为 args:y是一个键值对




你可能感兴趣的:(python,变长参数)