• 函数的参数


    函数的参数

    1,定义

    • 形参:函数的定义的括号里是形参

      • 默认参数(a,b)

      • def func(a,b,c=2)
        	函数体
        func()
        
      • 优先级,位置>默认

      • 位置参数(c=2)

    • 实参:函数的调用括号里是实参

      • 位置参数
      • 关键字参数
      • 混合参数
    • 传参:将实参传递给形参的过程

    • 位置传参时,形参和实参必须一一对应

    • def open(app):  ##形参(app),函数定义的括号括号里是形参
      	print('打开手机')
      	print(f'打开{app}')
      open('微信','QQ') ##实参('微信','QQ')
      

    函数的动态参数

    • 动态位置参数

      *args:在参数位置*/*/表示接受任意位置函数
      
    • def func(a,b,*args):  ######################此处的*:定义聚合
          print(a,b,args) 
      print(func(1,2,3,4,5,6))
      #########################
      1 2 (3, 4, 5, 6)
      None
      
      def func(a,b,*args):
          print(a,b,*args) ####################此处的*:定义散开
      print(func(1,2,3,4,5,6))
      #########################
      1 2 3 4 5 6
      None
      
    • 位置参数 >动态位置参数(*args) > 默认参数 > 动态关键字参数(**kwargs)

    • def func(a,b,*args,c=7,d=8):
          print(a,b,args,c,d)
      print(func(1,2,3,4,5,6))
      ###########################
      1 2 (3, 4, 5, 6) 7 8
      None
      
    • 动态关键字参数

    • **kwargs ,参数位置接受任意动态的关键字参数
      
    • def func(a,b,**kwargs):
      	print(a,b,**kwargs)
      print(func(1,2,c=3,d=4))
      ##########################
      1 2 {'c': 3, 'd': 4}         ###kwargs 字典
      None
      
    • ###位置参数 >动态位置参数(*args) > 默认参数 > 动态关键字参数(**kwargs)###
      def func(a,b,*args,c=1,=d=2,**kwargs):
      	print(a,b,args,c,d,kwargs)
      print(func(1,2,3,4,5,c=4,d=6,e=nihao,f=hello))
      ##############################################
      1 2 (3, 4, 5) 9 6 {'e': 'nihao', 'f': 'hello'}
      None
      
    • 万能传参

    • def func(*agrs,**kwargs):  # 万能传参
           print(agrs,kwargs)
      func(1,2,3,4,5,6,7,8,a=1,b=2,c=3)
      #########################################
      (1, 2, 3, 4, 5, 6, 7, 8) {'a': 1, 'b': 2, 'c': 3}
      
    • 参数总结

      • 万能传参:动态位置参数,动态关键字参数
      • 位置传参数,动态位置参数
      • 动态位置参数,关键字参数,动态关键字参数
    希望你眼眸有星辰,心中有山海,从此以梦为马,不负韶华
  • 相关阅读:
    C# 使用Enumerable.Range 打印数字
    C#中的范围类型(Range Type)
    C# 编程中的堆栈(Stack)和队列(Queue)
    C# 委托(delegate、Action、Func、predicate)
    使用线程以及对信号量 AutoResetEvent和ManualResetEvent的理解
    SQL Sever触发器的基本语法与作用
    C#控制台程序使用Log4net日志组件
    初级委托详解(C# 用委托有什么好处? 它起什么作用?)
    獲取串口數據,設置串口
    MVC 下 打包多个word到压缩包
  • 原文地址:https://www.cnblogs.com/daviddd/p/12033519.html
Copyright © 2020-2023  润新知