形参,实参
形参——函数完成其工作所需的一项信息
实参——调用函数时传递给函数的信息
def demo(parameter):
pass
demo('demo_test')
在函数demo()的定义中,变量parameter是一个形参——函数完成其工作所需的一项信息。在代码demo(‘demo_test’)中,值‘demo_test’是一个实参。实参是调用函数时传递给函数的信息。
位置实参
实参位置与形参位置一一对应
上面第一次调用demo1函数dt2实参对应的形参是p1,dt1实参对应的形参是p2
上面第二次调用demo1函数dt1实参对应的形参是p1,dt2实参对应的形参是p2
关键字实参
实参传入的时候使用形参的名称-值对,不需要和位置保持一致,直接在实参中将名称和值关联起来了,关键字实参无需考虑函 数调用中的实参顺序
上面两次调用demo2函数实参对应的形参都是一样的,dt1实参对应的形参是p1,dt2实参对应的形参是p2
默认值参数
调用函数传入了实参就用传入的值,实参没有传入值就用形参的默认值,实参不是必填
第一次调用demo3函数实参不给值,形参p1默认值是dt1
第二次调用demo3函数实参显示给了值,形参p1的值就是dt2
任意数量实参
*args
任意多个无名参数,是一个tuple
第一次调用demo4函数形参接受到的值是('dt1',)元组
第二次调用demo4函数形参接受到的值是('dt1', 'dt2', 'dt3')元组
**kwargs
关键字参数,它是一个dict
调用demo5函数形参接受到的值是{'p1': 'dt1', 'p2': 'dt2', 'p3': 'dt3'}字典
参数混合使用
位置参数和默认值参数混合使用
位置参数必须在前,默认值参数在后
顺序不对定义函数的时候会报错
*args和**kwargs参数混合使用
args必须在前,**kwargs在后
*args与位置参数和默认参数混合使用
位置参数在前面,*args在中间,默认参数在后面
位置参数在前面,默认参数在中间,*args在后面
传参方式需要注意,不然会报错
**kwargs与位置参数和默认参数混合使用
位置参数在前面,默认参数在中间,**kwargs在后面
位置参数在前面,**kwargs在中间,默认参数在后面,报语法错误
位置参数,默认参数,*args,**kwargs参数混合使用
不修改默认参数的值
位置参数在第一位,*args在第二位,默认参数在第三位,**kwargs在第四位
修改默认参数的值
位置参数在第一位,默认参数在第二位,*args在第三位,**kwargs在第四位,修改默认参数不用关键字实参方式直接在对应位置传值即可
网友评论