fun中*args和**kw的含义

*args和**kw都代表不确定的函数变量,即在函数调用时可以选择传入或者不传入参数,都不影响函数运行。

其中*args将传入对象当成是元组对待;**kw将传入对象当成字典对待。

例:

def fun(*args):
    print(args)
fun(1,2,3)
(1,2,3)
def fun(**kw):
    for k in kw:
        print(k,kw[k])
fun(a=2,b=3)
a 2
b 3

*args的作用是在函数调用时,将所以的可变参数当成一个tuple传给args,再整体调用。若要调用变量a本身是个tuple又想要逐个调用其中元素,只需在参数传递时在传入*a即可。

 

def fun(*args):
    for i in args:
        print(i)
fun(*(1,2,3))
1
2
3

**kw的作用是在函数调用时,可变参数的key,value值打包成dic,传给kw。传递参数时在dic变量b前加入**,则变量被当做dic传入kw。

 

 

def fun(**kw):
    for key in kw:
        print(key)
    print(kw)

fun(**{'a':1})
a
{'a':1}

 

你可能感兴趣的:(python)