函数的参数
内容概要
- 形参与实参介绍
- 形参与实参的具体使用
内容详细
形参与实参介绍
1 | 函数的参数分为'形式参数'和'实际参数',简称'形参'和'实参': |
在python中,变量名与值只是单纯的绑定关系,而对函数来说,这种绑定关系只在函数调用时生效,在调用结束后解除
形参与实参的具体使用
位置参数
1 | 位置即顺序,位置参数指的是按顺序定义的参数,需要从两个角度去看: |
1 |
|
关键字参数
1 | 在调用函数时,实参可以是key = value的形式,称为关键字参数,凡是按照这种形式定义的实参,可以完全不按照从左到右的顺序定义,但仍能为指定的形参赋值 |
1 | 注意: |
默认参数
1 | 在定义函数阶段时,就已经为形参赋值,这类形参称之为:默认参数,当函数有多个参数时,需要将值经常改变的参数定义成位置形参,而将值改变较少的参数定义成默认参数 |
1 | 这样在定义阶段时,就已经为参数sex赋值,意味着调用时可以不对sex赋值,这样就降低了函数调用的复杂度 |
1 | 注意: |
1 |
|
1 |
|
可变长度的参数(与*的用法)
参数的长度可变指的是:在调用函数的时候,实参的个数可以不固定
在调用函数时:实参的定义无非是按位置传参或者按关键字传参两种形式,这就要求形参提供两种方案,来分别处理两种形式的可变长度的参数 ↓↓↓
可变长度的位置参数
1 | 如果在最后一个形参名前加 * 号,那么在调用函数时,溢出的位置实参,都会被 * 接收,以元组的形式保存下来赋值给该形参 |
1 |
|
1 |
|
1 | 2 如果形参为常规的参数(位置或默认),实参仍可以是*的形式 |
1 |
|
可变长度的关键字参数
1 | ''' |
1 |
|
1 |
|
1 |
|
命名关键字参数
1 | 在定义了**kwargs参数后,函数调用者就可以传入任意的关键字参数(key = value),如果函数体代码的执行需要依赖某个key,必须在函数内进行判断 |
1 | 想要限定函数,调用者必须以key = value的形式传值,python3提供了专门的语法:需要在定义形参时,用*作为一个分隔符号,*号之后的形参称为命名关键字参数,对于这类参数,在函数调用时,必须按照key = value的形式为其传值, |
1 |
|
1 |
|
组合使用
1 | 综上所述所有参数可任意组合使用,但定义顺序必须是:位置参数、默认参数、*args、命名关键字参数、**kwargs |
1 |
|
重点:
1 | * 与 ** |