补充和动态参数
定义函数
位置参数:
直接定义参数
默认参数:
关键字参数:参数名=‘默认的值’
顺序:
必须先定义位置参数,后定义默认参数
动态参数
可以接收任意多个参数
定义方式:在参数名之前加*,习惯上用args
顺序上是:必须先定义位置参数,*args,后定义默认参数。组织成一个元组
缺点:不能接收关键字传参,只能接收位置传参。
若要接收多个乃至无穷的关键字时,定义参数名之前加·**,通常使用**kwsrgs。组织成一个字典。
1 def jishu(*args): 2 num = 0 3 for l in args: 4 num += l 5 print(num ) 6 return 7 w =jishu(123,2454,45,346,234,5,)
def jishu(**kwargs): print(kwargs) return w =jishu(a = int(213),b = int(2134),c = int(1234))
最终顺序:
位置参数,*args,默认参数,**kwargs。
动态参数的另一种传参方式
def jishu(*args): print(args) return l = [1,2,3,4,5,654,56,57,65,76,7,67,57,6] jishu(*l)
在实参的角度上给一序列加上*,就是将这个序列按照顺序打散。如果是上次字典,则加上**。
在形参的角度上,变量加上*,就是组合所有传上来的数。
函数的注释
def jishu(*args): ''' #函数实现了什么功能 #参数: print(args) return#返回了什么 ''' l = [1,2,3,4,5,654,56,57,65,76,7,67,57,6] jishu(*l)