码迷,mamicode.com
首页 > 其他好文 > 详细

函数参数

时间:2018-03-28 18:53:06      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:col   rgs   关键字   key   reg   mil   就是   元组   func   

目录

一:参数分类

二:位置参数

三:关键字参数

四:默认参数

五:可变长参数

 

一:参数分类

    1、函数参数有两种分类方式:

      1)形参、实参

         形参:在定义时,括号内定义的参数,形参就是变量名              

         实参:在调用时,括号内传入的值,实参就是变量名

          技术分享图片

       2)位置参数、关键字参数、默认参数、可变长参数               

二:位置参数

      1、定义:位置即顺序,位置参数值的就是按照从左到右的顺序依次定义的参数

      2、位置参数:位置形参、位置实参

        1)位置形参

           定义函数时,按照位置定义的形参,称为位置形参

        def foo(x,y,z):   #按照顺序
            print(x,y,z)
    #注意点:在掉用函数时,必须为其传值,而且多一个不行,少一个不行

        2)位置实参

           按照位置定义的实参,称为位置实参

        foo(1,2,3)#按照顺序传值
    #注意点:位置实参会与形参一一对应

三:关键字参数

        1、定义:在调用函数时,按照key=value的形式定义的实参,

            称为关键字参数

        2、关键字参数:

            相当于指名道姓地为形参传值,以为着不按照顺序定义,

            仍然能为指定的参数传值

        def  foo(x,y,z):
           print(你好)
        foo(1,2,z=12)   #位置实参可以和关键字参数合用
        foo(1,z=12,2)  #错误用法,关键字参数必须在为参数后面
        foo(1,x=1,y=2,z=12)#错误用法,不能为同意个形参传值

四:默认参数

      定义:在定义阶段已经为摸个形参赋值,这种形参就叫默认参数

      技术分享图片

      def register(name,age,sex=‘male‘):
          print(name,age,sex)

      def func(y=1,x): #错误,默认函数必须在位置形参后面
          pass
注意:默认参数只在定义阶段赋值一次,也就是说默认参数的值在定义阶段就固定死了
      m=10#次位传
      def foo(x,y=m):
      print(x,y)
      m=‘1213‘#传不进去,因为已经到了调用阶段
      foo(1)
      foo(1,11)#最先传  

五:可变长参数

      1、定义:实参不固定,如何将多于的实参传进去

      2、可变长位置参数:

          1)可变长位置参数*args:

            *将溢出的位置实参全部接收,然后保存为元组

            的形式赋值给args

          def foo(x,y,z,*args): #args=(4,5,6,7,8)
              print(x,y,z)
              print(args)
          foo(1,2,3,4,5,6,7,8,)

          2)可变长关键字参数**kwargs:

           *将溢出的关键字实参全部接收,然后保存为字典

           的形式赋值给args

          def foo(x,y,z,**kwargs): #kwargs={a:1,b:2,c:3}
              print(x,y,z)
              print(args)
          foo(1,2,3,a=1,b=2,c=3)

        3、实参中包含*、**

          def s(x,y,z):
              print(x,y,z)
        s(1,*ds)

        #将加星的参打散成一个个元素传入形参

        def s(x,y,z):
            print(x,y,z)

        s(1,**{y:1,z:2})    

 

 

  

函数参数

标签:col   rgs   关键字   key   reg   mil   就是   元组   func   

原文地址:https://www.cnblogs.com/songxuexiang/p/8665114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!