python值*args和**kwargs的总结思考

python 中 *args 以及 * *kwargs的总结

*arg

  • *args是当有多个参数时,且每次使用函数时参数的个数是不确定的,* args可以将这些参数打包成一个元组的形式

    #示例一
    def fun(*args):
        a = args
        print(a,type(a))
    fun(1,2,3)
    #输出的结果为
    (1, 2, 3) <class 'tuple'>
    #由此可见,其为元组形式
    
    #示例二
    #放入的参数本身是一个元组时
    def fun(*args):
        a = args
        print(a,type(a))
    fun((1,2,3))
    #其结果为
    ((1, 2, 3),) <class 'tuple'> #元组本身作为其中的一个参数
    
    #如果想将列表或或元组中的元素打散的话
    def fun(*args):
        a = args
        print(a,type(a))
    fun(*(1,2,3)) #可在元组钱加*,意为打散其中的元素,此情况适用于列表和元组
    
    

**kwargs

  • **kwrags主要适用于指定参数,主要在我们不知道所指定的参数的个数时,其将指定放入参数生成一个字典,形成一一对应的关系

    #示例一
    def fun(**kwargs):
        a = kwargs
        print(a,type(a))
    fun(k1 = 1,k2 = 2) #注意:k1,k1在此处没有" "
    #输出结果为
    {'k1': 1, 'k2': 2} <class 'dict'>
    
    #示例二
    #另外的一种表示方法
    def fun(**kwargs):
        a = kwargs
        print(a,type(a))
    fun(**{'k1' : 1,"k2" : 2}) #直接以字典的形式输入
    
  • 补充,*args和kwargs中的args和kwargs其实就是形参其完全可以换成a,b.......等的其他的参数,但为了显示专业即用法的同意,在使用的情况下一般是写成args和kwargs**。一个是打散元组,一个是打散字典,args与kwargs不过是函数参数的占位符。

posted @ 2020-08-10 17:02  小杨的冥想课  阅读(588)  评论(0编辑  收藏  举报