python函数参数传递规则

来源:互联网 发布:keynote mac版 编辑:程序博客网 时间:2024/05/18 02:09

1、声明一个参数具有默认值参数的函数,如下:

def hello(name = 'python')

    print('你好',name)

---无参数传递直接调用函数,则为:你好,python--(hello)

---有参数传递时,如:hello('小明')--结果为:你好,小明

2、默认参数调用

def sum(a=1,b=2,c=3)

    sum_abc=a+b+c

无参数时有sum_abc=6.

有参数时,例sum(3,3,3),,则sum_abc=3+3+3=9

3、可变数量参数传递

在定义函数时,如果参数名前加上一个‘*’,则表示该参数就是一个可变长参数。在调用该参数时,如果依次序将所有的其他变量都赋予值之后,剩下的参数将会手机在一个元组中,元组名称即为星号的参数名。

例:def change_para_num(*tpl,a=0,b)

    print('tpl:',tpl)

    print('a',a)

    print('b',b)

    change_para_num(1,2,3,a=1,b=2)   #tpl=(1,2,3)  a=1   b=2

    change_para_num(1,2,3,1,b=2)       #tpl=(1,2,3,1)   a =0   b=2

该方法也可以将带*的可变长参数放在函数定义参数区的最后一个,

4、第三 方法利用带星号的可变长参数收集的是无关键字的不定数参数,如要收集不定数量的关键字参数可以在自定义函数时的参数前加两个星,即为**valuename,此种方法多余的关键字参数就可以以字典的方式被收集到变量valuename中。