Python3学习笔记(三):关于函数使用过程中的形参和实参

    这篇文章主要记录下函数在调用的时候形参和实参的问题,首先下记一下几个定义。

    (一).函数传参的方式:

                1.位置传参:实参与形参按位置一一对应

                               *序列传参:属于位置传参的一种,用‘*’将序列拆解后按位置一一对应传参

                2.关键字传参:实参和形参通过关键字名称一一对应

                               *字典传参:属于关键字传参的一种,用‘**’将字典拆解后按关键字传参

                *关键字形参要定义在位置形参之后

   (二).缺省参数:

                *在没有字典形参的情况下,缺省形参必须要定义在最后。

   (三).形参的定义:

                位置形参:按位置一一对应    

                元组形参:属于位置形参的一种,用*args来收集位置传参的时候多余的实参,并组成一个元组

                关键字形参:只有具有相同的关键字的实参才能一一对应。(没有关键字的就是位置传参了)

                字典形参:和元组形参差不多的作用,针对多出来的关键字实参进行收集并组成字典,(**kwargs)

接下来记一个简单的例子,函数传参并不会太复杂。

def fn(a,b,*args,c,d,g=0,**kwargs):
                   print(a,b,args,c,d,kwargs,g)

 fn2(1,2,3,4,5,c=6,d=7,e=8,f=9,g=10)
                   consequence:1 2 (3, 4, 5) 6 7 {'e': 8, 'f': 9} 10

解释:a和b为位置形参,接受实参的1和2

           实参中的c=6和d=7为关键字传参,所以在他们前面的3,4,5都为多余的位置形参,全部被args接收

           g = 0是有缺省值的形参,因为还有一个字典形参,所有缺省形参排在关键字形参最后,字典形参之前

           e和f在函数形参中没有找到对应的关键字,于是被kwargs收集成了字典

 

 

猜你喜欢

转载自blog.csdn.net/qq_36272641/article/details/81274161
今日推荐