形式参数(形参)
在界定涵数环节界定的主要参数称作形参,等同于用户标识符
位置形参(一般形参)
位置形参:在函数定义环节,依照从左往右的次序界定
特性:务必被传值,且实参与形参依照次序一一对应,多一个少一个都不好!
def func():
pass
默认设置形参
默认设置形参:在函数定义环节,就早已被取值的主要参数
def func(x, y=1):
pass
一般搜集形参
一般搜集形参:用以接受空出一部分的位置实参,外溢的一部分会被储存成元组种类,随后取值给后边的形参接受
def func(x, y, *args):
print(x, y)
print(args)
func(1, 2, 3, 4, 5, 6, 7, 78, 8, 89)
*后的形参名一般界定为args,为约定成俗
关键字搜集形参
关键字搜集形参:用以接受空出一部分的关键字实参,外溢的一部分会被**储存成词典种类,随后取值给**后边的形参接受
def func(x, y, **kwargs):
print(x, y)
print(kwargs)
func(a=1, b=2, c=3, x=4, y=5, z=6)
**后的形参名一般界定为kwargs,为约定成俗
取名关键字形参
取名关键字形参:在函数定义时,*后界定的主要参数,便是取名关键字主要参数
特性:取名关键字实参务必依照key=value的方式为其传参
# y=2是含有初始值的取名关键字形参,并不是是默认设置形参,因此 能够置放在z的前边
def func(x, *, y=2, z):
print(x)
# 在其中y和z便是取名关键字形参
print(y, z)
func(1, z=3)
具体主要参数(实参)
在调用函数环节界定的主要参数称作实参,等同于变量类型
位置实参(一般实参)
位置实参:在调用函数环节,依照从左往右的次序先后传到的值
特性:实参与形参依照次序一一对应
def func(x, y):
print(x y)
func(1, 2)
关键字实参
关键字实参:在调用函数环节,依照key=value的方式传到的值
特性:特定给实际的某一形参传值,可以不依照次序传值
def func(x, y):
print(x y)
func(y=1, x=2)
func(x=2, y=1)
*和**的应用
*和**在函数定义处应用
*:把不必要的一般实参装包成元组
**:把不必要的关键字实参装包成词典
*和**在调用函数处应用
*:对元组或目录开展解压工具
**:对词典开展解压工具
*和**另外在函数定义处和启用处应用
先解压工具变为位置形参
再将不必要的位置形参装包
# 实例一
def func(x, y, z):
print(x, y, z)
func(*[1, 2, 3])
func(*(1, 2, 3))
func(**{"x": 1, "y": 2, "z": 3})
# 案例二
def func(x, y, z, *args):
print(x, y, z)
print(args)
func(5, 6, 7, *[1, 2, 3])
形参与实参的关联
在启用环节,实参会关联给形参
这类关联关联只有在涵数身体应用
实参与形参的关联关联只在调用函数时起效,调用函数完毕后消除关联关联
汇总
位置实参与关键字实参混和应用时,位置实参务必放到关键字实参前边(英语的语法要求)
位置形参与默认设置形参混和应用时,位置形参务必在默认设置形参的左侧
不可以为同一形参反复传值
默认设置形参相匹配的实参可传并不传
*args与**kwargs混和应用时,*args务必写在**kwargs的前边,不然会报拼写错误