函数的传参四种形式和接受参数的四种形式

python3 函数的参数传递:
  
    传递方式:
       位置传参
       序列传参
       关键字传参
       字典关键字传参

位置传参:
    实际调用参数(实参)的对应关系与形式参数(形参)的对应关系是按
    位置来依次对应的
    

示意:
         形参是用来接数据的
      def fx(a, b, c):
         pass
  #   fx (1,2,3)

序列传参:
     
    序列传参是指在函数调用过程中,用*将序列拆解后按位置进行传递的传参方式
    实参和形参通过序列传递和匹配

示例:
    def fx(a, b ,  c):
      pass
 s1 =[11, 22, 33] # 列表
 fx(*s1)  #将s1序列拆解后按位置传入fx中

关键字传参:
    是指传参时, 按着形参的名称给形参赋值
    实参和形参按名称进行匹配
    示例:
     def fx(a, b, c):
        pass
    fx(b=22, c=33, a=11) # 11 -->a  22-->b  33-->c
  注:
    实参和形参按形参名进行匹配, 可以不按位置进行匹配


字典关键字传参:
  实参为字典, 用**拆解字典后再进行关键字传参:


  示例:
    def fx(a, b, c):
       pass
    
    d = {'c':33, "b":22, "a":11} 
    fx(**d) #拆解字典再依次按关键字传参


  说明:
    字典的键名和形参名必须一致
    字典的键名必须为字符串
    字典的键名要在形参中存在

综合传参:
   positional(位置)
     函数的传参方式在能确定形参能唯一匹配到相应实参的情况下可以任意组合
     注:
        通常位置传参和序列传参先传递, 其次是关键字传参和字典
        关键字传参
   示例:
       def fx(a, b, c, d, e, f):
                 pass

           fx(10, *[20, 30], e=50, **{"d":33, "f":60})
          #以下是错误传法:
           fx(e=50, **{'d':40, "f":60}, 10, *[20,30])

接收的方式:
############################以下讲函数的形参###########################
函数的缺省参数
  
      语法:  
        def 函数名(形参名1 = 默认实参1, 形参2=默认实参2.....):
            语句

      示例:
          def info(name, age=1, address="不详"):
            print("我叫",name,"我今年",age,"岁",
            "家庭住址:", address)
            info("张飞",30, "中原")
            info("tarena",10)
            info("赵云")

     说明: 
        缺省参数必须自右至左依次存在
        缺省参数可以有0个,1个,多个,甚至全部都有缺省参数
        缺省参数的绑定对象存在于函数内, 同函数的生命周期一致

    示例:
      def fn(a, lst=[]):
        lst.append(a)
        print(lst)

     l = [1, 2, 3, 4]
     fn(5, l)
     fn(1.1)
     fn(2.2)

函数的形参定义方式:
    
    1. 位置形参:
    2. 星号元组形参
    3. 命名关键字形参
    4. 双星号字典形参
      
      函数不关心外部,只关心形参


位置形参: 
  def 函数名(形参1, 形参2, ....)
          语句块
星号元组形参:
   
     语法:   
      def 函数名(*元组形参名:):
           语句块
     作用:
        收集多余的位置传参

命名关键字形参
    语法:
       def 函数名(*, 命名关键字形参):
           语句块
    或
    
       def 函数名(*args, 命名关键字形参): 
           语句块
    作用:
        所有的命名关键字形参都强制调用者采用关键字传参或字典关键字
        传参的方式调用
    
双星号字典形参:
    
    语法:
      def 函数名(**字典形参名):
          语句块
    作用;
        收集多余的关键字传参
    注:
      字典形参名通常叫:kwargs

函数参数说明:
  位置形参, 命名关键字,缺省形参,星号元组形参, 双星号字典形参可以混合使用


函数参数自左至右的顺序为:
 1. 位置形参
  2, 星号元组形参
  3.   命名关键字形参
  4    双星号字典形参
示例;
   def fn(a, b, *args, c, **kwargs):
       pass
    fn(100, 200, 300, 400, *"AB", **{"d": "d"}, c = 100)

可以接收任意位置传参和关键字传参的函数:
def fn(*args, **kwars):
    pass


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值