函数传参数:
1: 正常的参数传递
def testfun(x,y):
其中x,y 位置固定.调用函数的时候,必须传递参数,否则会报错
2: 默认参数
def testfun(x,y=0)
调用参数的时候,y参数可以不传,此时y参数的值为0, 默认参数的位置,要放在必须参数的后面.
使用场景: 一般是不频繁变更的参数, 一般会设定为默认参数
坑坑: 默认参数必须指向不变对象!,否则调用函数时,改变默认参数.再次调用函数的时候,默认参数的值改变
3:可变参数
即函数的参数的个数是可变的,可以多个,可以0个
*param 的星号参数时,从此处开始直到结束的所有位置参数 (Positional Arguments)都将被收集并汇集成一个称为“param”的元组(Tuple)。
def restfun(*a)
Python允许你在list或tuple前面加一个*
号,把list或tuple的元素变成可变参数传进去
4:关键字参数
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
使用场景:扩展函数的功能,解决非必填项的问题. 可传入可不传入
def testfunc(**para)
5: 命名关键字
要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收city
和job
作为关键字参数
def testunc(a,b,*,city,job)
调用方式如下:
person('Ja', 24, city='Beijing', job='Engineer')
如果有了可变参数,则此时不需要*分隔符
def testunc(a,b,*para,city,job)
调用的时候,必须传入参数的名称 City=“aaaa”
上述各种参数的组合:
参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
原文位置: