zoukankan      html  css  js  c++  java
  • python自定义函数的参数之四种表现形式

    (1)def a(x,y):print x,y
    这是最常见的定义方式,调用该函数,a(1,2)则x取1,y取2,形参与实参相对应,如果a(1)或者a(1,2,3)则会报错
    (2)def a(x,y=3):print x,y
    提供了默认值,调用该函数,a(1,2)同样还是x取1,y取2,但是如果a(1),则不会报错了。上面这俩种方式,还可以更换参数位置,比如a(y=4,x=3)用这种形式也是可以的
    如果是def a(x,y=3,z=4)这种函数如果只传x和z和值,则必须这样写a(1,z=2),后面的参数必须指定参数名
    (3)def a(*x):print x
    以一个*加上形参名的方式来表示这个函数的实参个数不定,可能为0个也可能为n个。a(1,2,3)可以正确调用,a(x=1,y=2,z=3)这样调用会报错。不管有多少个参数,在函数内部都被存放在以形参名为标识符的元组中,即x中
    (4)def a(**x):print x
    形参名前加两个*表示,参数在函数内部将被存放在以形式名为标识符的dictionary中,这时调用函数的方法则需要采用arg1=value1,arg2=value2这样的形式
    >>> a(x=1,y=2,z=3)
    {'y': 2, 'x': 1, 'z': 3} #存放在字典中
    >>> a(1,2,3) #这种调用则报错
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
    TypeError: a() takes exactly 0 arguments (3 given)
     
  • 相关阅读:
    Visual C++ 2010 SP1 x86&x64
    MVC拦截
    自定义HTTP消息拦截
    转mysql半主从同步
    mysql主从搭建之诡异事件
    snapshot相关
    分布式系统唯一ID生成方案汇总
    mysql监控利器mysqlmtop部署安装
    mysql日常运维
    MySQL索引背后的数据结构及算法原理
  • 原文地址:https://www.cnblogs.com/stuqx/p/7383706.html
Copyright © 2011-2022 走看看