python语音是动态解释类型的,被称为胶水语言,再python的底层函数我们会经常看到两个形参*args,**kwargs,那么它们的本质是什么,什么使用它们呢?

一 .*args 和 **kwargs 是什么?

*args本质是一个tuple(元组),**kwargs本质是一个dict(字典)。

二.怎么用 *args 和 **kwargs?

def my_fun(*args, **kwargs ):
print (‘args = ‘, args)
print (‘kwargs = ‘, kwargs)

调用就比较有意思了,传统的比如,c, c++, Java, C#,基本都是一对一传参,但是python靠这两个参数,可以实现多参的灵活传入。如下所示,我完全可以这么调用:

my_fun(1,3,5,9, a=2, b=4)

这样打印的结果:

args = (1,3,5,9) # 是一个元组

kwargs = { ‘a’: 2 , ‘b’:4 } #是一个字典

注意事项:

上述函数 my_fun,如果这么调用就会有问题:

my_fun( a=2, b=4, 1,3,5,9 )

报错:SyntaxError: non-keyword arg after keyword arg”

意思是:关键字参数后面不能有非关键字参数,言外之意,关键字参数 * kwargs 必须位于 args 之后!

最后更新: 2018年10月18日 15:07

原始链接: https://zem12345678.github.io/2018/10/18/python基础小谈/

× 请我吃糖~
打赏二维码