zoukankan      html  css  js  c++  java
  • *args和**kwargs的用法

    从实参角度,看*args的用法:

    按位置传值,多出来的值,会被*统一接收,保存成元组的形式。并赋值给args。

    *args需要放到位置参数x的后面

    *args与y=1一般不会放到一起用

    args=元组()

    *args=*(x,y,z)

    *当成位置参数看

    **当成关键字来看

    def foo(x,*grgs):   #args=(2,3,4,5,6,'a','b')
          print(x)
          print(args)
    
    foo(1,2,3,4,5,6,'a','b')
    

     

    def foo(x,y=1,*args):
    	print(x)
    	print(y)
    	print(args)
    
    foo(1,2,3,4,5,6,7,8) 

     *args与位置参数用

    def foo(x,*args,y=1): #*args也是位置函数
    	print(x)
    	print(y)
    	print(args)
    
    foo(1,2,3,4,5,6,7,8,y=10)
    
    #一般而言,*args,与y=1,不会放到一起用
    

      从形参的角度:把*args当成位置参数看

    def foo(*args):
        print(args)
    foo(1,2,3)
    
    结果:(1,2,3)
    

      从实参的角度看:

    def bar(x,y,z):
         print(x)
         print(y)
         print(z)
    bar(*(1,2,3))
    
    
    结果:
    1
    2
    3
    

      

    #**kwargs

    按关键字传值多余的,交给**去处理,把这部分做成字典的形式,赋值给kwargs。

    def foo(x,**kwargs):
          print(x)
          print(y)
    
    foo(x=1,y=2,a=3,b=4)
    foo(x,y=2,a=3,b=4)#不能重复赋值
    

      

    def foo(x,*args,**kwargs):
         print(x)
         print(args)
         print(kwargs)
    
    foo(1,y=1,z=2)
    
    #按位置放在按照关键字之前
    

     

  • 相关阅读:
    Python使用小功能
    2月5日学习记录
    关于js的词法分析
    JavaScript
    blog界面美化
    css属性
    css三大特性
    css之选择器4
    css之选择器3-系列选择器
    css之选择器2
  • 原文地址:https://www.cnblogs.com/catherine007/p/8227675.html
Copyright © 2011-2022 走看看