python函数实参和形参

形参:

  在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名

实参:

  在调用函数阶段传入的值称之为实际参数,简称实参,相当于变量值

形参与实参的关系:

  1.在调用阶段,实参(变量值)会绑定给形参(变量名)

  2,这种绑定关系只能在函数体内使用

  3.实参和形参的绑定关系在函数调用时生效,函数调用结束后解除绑定关系(释放内存空间)

位置参数:

  按照从左到右的顺序依次定义的参数称之为位置参数

位置形参:

  在函数定义阶段,按照从左到右的顺序直接定义的“变量名”

  特点:

  必须被传值,多一个不行少一个也不行

位置实参:

  在函数调用阶段,按照从左到右的顺序依次传入的值

  特点:

  按照你顺序与形参一一对应

关键字实参:

  在函数调用阶段,按照key=value的形式传入的实参

  特点:

  指名道姓给某个形参传值,可以完全不参照顺序

默认形参:

  位置形参必须在默认形参的左边,必须先定义位置形参再定义默认形参

  默认参数的值是在函数定义阶段被赋值的,准确地说被赋予值的内存地址

  虽然默认参数可以是任意数据类型,但不推荐使用动态数据类型(无法预知结果)

python中所有值的传递,传递的都不是值本身,而是值的引用,即内存地址

命名关键字参数

在定义函数时,*后定义的参数,如下所示,称之为命名关键字参数

def func(x,y,*,a,b):

参数组合使用的顺序

位置形参、默认形参、*args、命名关键字形参、**kwargs

def func(x,y=11,*args,z,**kwargs):

  print(x)

  print(y)  

  print(args)

  print(z)

  print(kwargs)