一、形参定义方式
1.缺省形参
可以让调用者有选择地传递需要的数据,不写参数则使用默认值
def functionname(..., [parameter1 = defaultvalue1]):
[functionbody]
e.g.
def fun01(a, b, c=0):
print(a)
print(b)
print(c)
2.位置形参
1)个数限定
def fun02(a, b, c):
pass
2)星号元组形参(个数不限定)
def fun02(*args):
print(args)
# 对于方法内部而言,就是元组,对于调用者而言,可以传递数量无限的位置实参
3.命名关键字形参:要求必须使用关键字实参
1)命名关键字形参
def fun03(*args, a)
print(args, a)
fun03(3, 6, 9, a=12)
2)双星号字典形参
def fun03(**kwargs):
print(kwargs)
fun03(a=1, b=2) # {'a':1, 'b':2}
# 对于方法内部而言,就是字典,对于调用者而言,可以传递数量无限的关键字实参
【注】参数自左至右的顺序:
位置形参 --> 星号元组形参 --> 命名关键字形参 --> 双星号字典形参
二、实参传递方式
1.位置传参
实参的位置和数量必须与形参一致
序列传参:用*将序列拆分后与形参的位置依次对应,属于位置形参
2.关键字传参
实参根据形参的名称进行对应
字典传参:用**将字典拆分后与形参的名字进行对应,属于关键字传参