python学习笔记:什么事*args和**kwargs?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记:什么事*args和**kwargs?相关的知识,希望对你有一定的参考价值。
一.*args和**kwargs原理
先看个例子:
def test(*args,**kwargs): print("args =",args) print("kwargs =",kwargs) print("----------------------------------") if __name__ == ‘__main__‘: test(1,5,94,564) test(a=1,b=2,c=3) test(1,2,3,4,a=1,b=2,c=3) test(‘I love python‘,1,None,a=1,b=2,c=3) #输出: args = (1, 5, 94, 564) kwargs = {} ---------------------------------- args = () kwargs = {‘a‘: 1, ‘b‘: 2, ‘c‘: 3} ---------------------------------- args = (1, 2, 3, 4) kwargs = {‘a‘: 1, ‘b‘: 2, ‘c‘: 3} ---------------------------------- args = (‘I love python‘, 1, None) kwargs = {‘a‘: 1, ‘b‘: 2, ‘c‘: 3} ----------------------------------
可以看到这两个是python中的可变参数,*args表示任何多个无名参数,他是个tuple,**kwargs表示关键字参数,它是个dict。在同时使用*args和**kwargs时,必须*args参数列要在**kwargs前面,要是test(a=1,b=2,c=3,1,2,3,4)这样调用的话肯定会报语法错误的!
二.使用**kwargs创建字典:
def kw_dict(**kwargs): return kwargs print(kw_dict(k1=‘v1‘,k2=‘v2‘,k3=‘v3‘)) #执行结果: {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
以上是关于python学习笔记:什么事*args和**kwargs?的主要内容,如果未能解决你的问题,请参考以下文章