13.多变的函数参数
1.定义函数的时候,吧函数的参数和参数的位置确定下来,加上函数体及return返回值,函数定义就完成了。函数内部复杂的逻辑被封装起来,调用者只需要知道需要传哪些参数,产生什么返回值就可以了。
2.python定义函数参数的灵活性非常大,有必选参数、默认参数、可变参数、关键字参数、参数组合等形式出现
3.位置参数:按照位置排列好的参数
4.默认参数:函数的某一个参数比较固定,我们可以为其设置默认参数。好处是减少了函数调用的复杂度。在需要复杂的函数调用时,可以选择传入参数修改默认的参数值。需要注意的一点是,默认参数必须是不变的量,否则容易踩坑!
5.可变参数:顾名思义是函数参数个数可以 发生变化的函数,可变参数定义为在参数前边加一个*号
可变参数的函数可以使用list或tuple作为参数传入,但它和传入list或tuple的区别是函数调用的时候,具有可变参数的函数可以接受任意多个参数,而接受list或tuple的函数只接受传入list或tuple,但是list或tuple在传给可变参数的函数时,可以在list或tuple前面加*,表示将list或tuple中的每一个数以可变参的形式传递给函数
6.关键字参数:含参数名的参数,这些参数会被组装成一个dict,除了正常的必传参数为,还可以传入任意多的带有名字的参数。好处是在调用函数的时候可以携带任意的额外信息,扩展函数的功能
7.命名关键字参数:关键字参数可以传入任意多的带有名字的参数,有时候我们需要限制传入参数的名字,那就可以使用命名关键字参数。命名关键字函数使用*号分隔
在带有关键字参数的函数内部,通过in关键字判断关键字参数中都包含哪些参数
命名关键字参数:在调用命名关键字函数的时候必须指定参数的名字 ,并且参数必须和命名关键字相同,否则报错
如果已经有了一个可变的参数,可以省略*
为命名关键字参数指定默认值