必选参数
必选参数在前,默认参数在后,否则python 解释器会报错
默认参数
如何设置默认参数
- 当参数有多个参数时,把变化大的参数放在前面,变化小的参数放在后面,将变化小的参数作为默认参数。比如要调用某个参数,但是传入的某些参数大多是一样的,可以把这些大多一样的参数当作默认参数
默认参数的传参方式
- 传入默认参数的实参时可以按照顺序来
- 不按顺序,不按顺序时需要把参数名写上
def getInfo(name,grend,age=6,city = 'Beijing'):
# 传参方式
1. getInfo('wfm','女') # 使用默认参数
2. getInfo('ha','男',city = 'shanghai',age = 8) #不按顺序传参
3. getInfo('hhi','女',8,'guangzhou') # 按照顺序传参
可变参数
*形参。在参数前加一个 * 。调用函数时可以传入任意参数,包括0个参数。在函数调用时会自动组装为一个tuple,args接收的是一个tuple.
def calc(*args):
关键字参数
关键字参数允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict.
def person(name,age,**kw):
调用
- 可以只传入必选参数
person('wfm',67)
- 可以传入任意个数的关键字参数
person('dhu',65,city = 'beijing',grend = '女')
name : dhu age= 65,other:{'city ':'beijing', 'grend': '女'}
比如提交表单时需要必填项和选填项,选填项可以通过关键字参数定义
命名关键字参数
如果使用关键字参数,可以传入不受限制的参数,但是如果要对传入的参数限制,就可以使用命名关键字参数。命名关键字参数需要一个特殊分隔符“ * ”,“ * ”后面的参数为命名关键字参数。
def person(name,age,*,city,job):
命名关键字参数必须传入参数名,如果没有传入参数名将报错
person('jack',23,city = "beijing",job = "teacher")
如果函数中已经存在可变参数,后面跟着的命名关键字不再需要* 特殊分隔符了。
def person(name,age,*args,city,job):
参数组合
在定义函数时,必选参数、可变参数、默认参数、关键字参数、命名关键字参数可以组合使用,但顺序是:** 必选参数、默认参数、可变参数、命名关键字参数和关键字参数。**
def f1(a,b,c=0,*args,**kw):