Python——参数

来源:互联网 发布:迪优美特网络机顶盒x7 编辑:程序博客网 时间:2024/06/06 11:05

1.传递参数

在通过传递参数时,根据传递的值是否可变,有两种形式。

  • 不可变参数:这中方式与java中的值传递一样,只是把值传过去,函数中处理的结果不会影响调用函数时用的变量。
  • 可变参数: 这种方式即相当于引用传递,函数中改变该变量,外部的变量也会跟着变。

2.特定参数

    1.        普通参数:按顺序匹配         f(a,b)

    2.        关键字参数:根据参数名进行匹配     f(name=a)

    3.        默认参数:在定义函数时就给定了默认值的变量,如果调用时不给值,则使用默认值 f(a=1)

    4.        可变参数:可接受多个参数 f(*a)

    5.        可变参数解包:接受多个带关键字的参数 f(**a)

    6.        Keyword-only参数:参数必须按照名称传递f(*a,name=b)

     

    用法:

    l  参数顺序必须是,普通参数——>关键字参数——>可变参数——>可变参数解包

    l  通过位置分配非关键字参数

    l  通过匹配变量名分配关键字参数

    l  其他额外的非关键字参数分配到可变参数*a

    l  其他额外关键字参数分配到可变参数解包**a

    l  Keyword-only参数必须是跟在一个可变参数后面,调用时必须用关键字参数调用

     

    例子:

    1.def F(a,b,c):print(a,b,c,end=’,’)    普通参数与关键字参数

             F(1,2,3)     结果:1,2,3

             F(a=3,c=1,b=2)         结果:3,2,1

             F(c=2,1,3)         结果:1,3,2

    2.def F(a,b,c=0,d=0):print(a,b,c,d,end=’,’)                关键字参数与默认参数

             F(1,2)        1,2,0,0

             F(1,d=1,b=0)    1,0,0,1

    3.def F(a,*b,**c):print(a,b,c,end=’,’)       综合

             F(1,2,3,4,x=1,y=0)        1,(2,3,4),{’x’:1,‘y’:0}

    4.def F(a,*b,e) :print(a,b,e,end=’,’)       Keyword-only参数

             F(1,2,3,4,e=9)           1,(2,3,4),9

     

    解包参数:

             在调用函数时,可以用*或**来解包集合

    如:

             defF(a,b,c,d)

    x=(1,2,3,4)

    F(*x)          即可调用

     

    Z={‘a’=1,’b’=2,’c’=3,’d’=4}

    F(**z)       就相当于关键字参数形式调用




0 0