python基础-操作函数2

  一、实参和形参

    形参:指的是在定义函数时,括号()内指定的参数。本质就是变量名

      实参:指的是在调用函数时,括号()内传入的值。本质就是值

      只有在调用函数时才会在函数体内发生实参(值)与形参(变量名)的绑定关系

      该绑定关系只在调用函数时临时生效,在调用函数结束后就解除绑定


    二、位置参数与关键字参数

    位置参数:在定义函数时,按照从左到右顺序依次定义的形参称之为位置形参

      注意:1.但凡是按照位置定义的形参,在调用函数时必须传其值,多一个不行,少一个不行

      

      位置实参:在调用函数时,按照从左到右的顺序依次传入的值

      注意:1.在传值时,按照顺序与形参一一对应

      

 

      关键字实参:在调用函数时,按照key=value的形式定义的实参,称之为关键字实参。

      

 

      注意:1.在传值可以完全打乱顺序,但仍然可以指名道姓的指定参数传值

      

          2.位置参数可以和位置参数混合使用。

           位置参数不能跟在关键字参数后面

       

           并且不能重复传值

       

 

    三、默认形参

      在定义函数时,就已经为某些参数绑定值,称之为默认参数

      注意:1.在定义阶段就已经有值,就意味着在调用阶段就可以不用为其传值

         

         2.若已经传值,则以传入值为准

         

         3.默认形参的值只在定义阶段生效一次,在函数定义之后发生的改动无效

         

         4.默认形参的值通常应该是不可变类型

         

 

 

       默认形参VS位置形参:

        默认形参:大多数情况下值都一样

        位置形参:大多数值都是不一样

    四、可变长度的参数:

      可变长度指的是在调用函数时,函数参数的个数可以不固定

      然而实参终究是要为形参传值的,针对实参个数不固定,对应着也形参也必须有两种解决方案,来分别处理溢出的关键字实参(**)和位置实参(*)。

      *处理的溢出的位置参数,会保存成元祖的形式赋給 *后面的变量名

      

 

      **处理的溢出的关键字参数,会保存成字典的形式赋給 *后面的变量名    

         

      

     实参中带*

       窍门:但凡碰到实参中带*,都先将其打散成位置实参

        

         窍门:但凡碰到实参中带**,都先将其打散成关键字实参

         

 

posted @ 2019-03-12 23:56  不吃海带丝  阅读(178)  评论(0编辑  收藏  举报