一、形参
1、可变长度参数:*args,接受传递的参数到一个元祖中(装包),当需要处理参数时,可遍历该元组
2、默认值参数:参数含有默认值,当不进行参数传递时,使用该默认值。
二、实参
1、位置参数:按照顺序进行参数传递
2、关键字参数:按照关键字进行参数传递,且位置参数的位置在关键字参数之前
3、*args之后的参数传递必须是位置传参,且保存在一个元组中。(*a, b, c)表示所有的位置参数都给a,b和c必须要关键字传参。(a, *b, c)表示第一个位置参数给a,c必须制定关键字参数,其他的参数给b。(*,a, b, c)表示 要求所有的参数必须以关键字方式传递。
4、**args可以处理所有未被接受的关键字传参,且保存在 一个字典中,字典的key就是参数的名字,字典的value就是参数的值。且**args必须放在所有参数的最后。
5、参数的解包。fn(*args) args=一个序列,tuple、list.。 fn(**args) args=一个字典。
原文:https://www.cnblogs.com/henji1266/p/12001689.html