zoukankan      html  css  js  c++  java
  • 9-28 函数

    动态参数

    可以接受任意多个参数,在参数名前面加*,习惯参数名用args
    位置顺序:位置参数,*args,默认参数,**kwargs
    def s(*args):
        s=0
        for i in args:
            s+=i
        return s
    #此时将参数整体当成一个元组
    print(s(1,2,3))#结果6
    def func(*args,l=[]): print(args)#结果:(1, 2, 'str', ['jkj', 1]) print(args,l)#结果:(1, 2, 'str') ['jkj', 1] func(1,2,'str',['jkj',1]) func(1,2,'str',l=['jkj',1]) #此时将参数当做字典 def funct(**kwargs): print(kwargs) funct(a=1,b=2,c=3)  #结果:{'a': 1, 'b': 2, 'c': 3}
    def func(*args,default=1,**kwargs):
        print(args,default,kwargs)
    func(1,2,3,4,5,default=2,a='aaa',b='bbbb')  #结果:(1, 2, 3, 4, 5) 2 {'a': 'aaa', 'b': 'bbbb'}
    

    动态参数的另一种传参方式

    def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值
        print(args)
    func(1,2,3,4,5) #结果:(1, 2, 3, 4, 5)
    l=[1,2,3,4,5]
    #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺利打散
    func(*l)    #结果:(1, 2, 3, 4, 5)
    
    def funct(**kwargs):
        print(kwargs)
    funct(a=1,b=2)  #结果:{'a': 1, 'b': 2}
    d={'a':1,'b':2}
    funct(**d)  #结果:{'a': 1, 'b': 2}
    

      

     

      


    动态参数有两种
    :可以接收任意个参数
    *args:接收的是按照位置传参的值,组织成一个元组
    **kwargs:接收的是按照关键字传参的值,组织成一个字典
    args必须在kwargs之前

  • 相关阅读:
    我败在了盲目和没有计划
    跟我一起学.NetCore目录
    跟我一起学.NetCore之依赖注入作用域和对象释放
    跟我一起学.NetCore之Asp.NetCore启动流程浅析
    std::unordered_map
    Android apps for “armeabi-v7a” and “x86” architecture: SoC vs. Processor vs. ABI
    android studio 配置相关问题
    shell script
    vscode配置
    linux常用命令笔记
  • 原文地址:https://www.cnblogs.com/Cheryol/p/9718598.html
Copyright © 2011-2022 走看看