欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python疑问5:位置参数,默认参数,可变参数,关键字参数,命名关键字参数区别...

发布时间:2023/12/31 python 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python疑问5:位置参数,默认参数,可变参数,关键字参数,命名关键字参数区别... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.位置参数
位置参数要求调用时传入函数的参数必须和定义时的位置和个数一致,即一一对应,不可缺省

def func(a,b):sum = a + breturn sum print(func(2,3)) //5 print(func(2)) //报错

2.默认参数
定义在位置参数后,作用是当参数缺省时,用定义的默认值替代

def func(a,b=3):sum = a + b return sum print(func(2,4)) //6 print(func(2)) //5

3.可变参数
在tuple或list前加一个*,构造出可变参数。接收任意个参数,包括0个。用于函数参数不确定的情况

def func(*args):sum = 0for x in args:sum += xreturn sum print(func(1,2,3)) //6 //将list或tuple内全部元素作为可变参数 L = [1,2,3,4] print(func(*L)) //10

4.关键字参数
在dict前加两个*,构造关键字参数。接收任意无限制的参数,用于扩展函数的功能

def func(a,b,**kw):sum = a+bprint(a,'+',b,'=',sum,kw) func(2,3,color="black",phone="vivo") // Out:2 + 3 = 5 {'color': 'black', 'phone': 'vivo'}//先组装dict,再作为关键字参数传进去 desc = {'color': 'black', 'phone': 'vivo'} func(2,3,**desc) // Out:2 + 3 = 5 {'color': 'black', 'phone': 'vivo'}

5.命名关键字参数
命名关键字参数指定了key,将关键字参数做了一个限制。以一个作为分割。如果已经存在可变参数,那么命名关键字不需要作为分割

def func(a,b,*,color):sum = a+bprint(a,'+',b,'=',sum,'color:',color) func(2,3,color='black') // Out:2 + 3 = 5 color: black func(2,3,color='black',phone='vivo') //报错 func() got an unexpected keyword argument 'phone' //如果已经存在可变参数,那么命名关键字不需要*作为分割 def func(a,b,*args,color='red'):sum = a+bprint(a,'+',b,'=',sum,args,'color:',color) func(2,3,color='black') //2 + 3 = 5 () color: black func(2,3,4,5,color='black') // 2 + 3 = 5 (4, 5) color: black //命名关键字支持默认值 func(2,3,4,5) //2 + 3 = 5 (4, 5) color: red

注意:
参数位置排列顺序:位置参数,默认参数,可变参数,命名关键字参数,关键字参数,

总结

以上是生活随笔为你收集整理的python疑问5:位置参数,默认参数,可变参数,关键字参数,命名关键字参数区别...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。