前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python函数中的*、*args、**kwargs

Python函数中的*、*args、**kwargs

作者头像
神秘的寇先森
发布2020-02-19 11:03:23
9290
发布2020-02-19 11:03:23
举报
文章被收录于专栏:Java进阶之路Java进阶之路
==用法1:不定长参数==

当函数需要的参数数量不确定的时候,可以使用args 和 kwargs , 所有的位置参数保存在args中,以元组的形式保存,调用时直接用args,不需要带 * 所有的关键参数保存在kwargs中,以字典的形式保存,调用时也直接使用kwargs

代码语言:javascript
复制
#demo1:
def func(*args, **kwargs):
    print(args)
    print(kwargs)

func("jack", 18, "male")
代码语言:javascript
复制
#output:
('jack', 18, 'male')
{}

调用时没有使用关键参数,所以kwargs字典里面是空

代码语言:javascript
复制
#demo2:
def func(*args, **kwargs):
    print(args)
    print(kwargs)

func(name="jack", age=18, sex="male")
代码语言:javascript
复制
#output:
('jack', 18)
{'sex': 'male'}

调同时使用位置参数和关键参数,关键参数要放在位置参数后,否则会报错

==注意:==
  • *args 和 **kwargs里面的参数名args、kwargs可以为任何变量名,约定俗成用args和kwargs
==用法2:* 和 *para 后的参数调用时必须是关键参数==
代码语言:javascript
复制
#demo1:
def func(x, *, y):
    print(x, y)

func(3, y=5)
func(x=3, y=5)
# func(x=3, 5)  报错
# func(3, 5)    报错
代码语言:javascript
复制
#output:
3 5
3 5
  • *之后的参数调用必须是关键参数, 之前的不限制,
  • 如果 * 放在参数列表的第一个,则后面的参数都必须用关键参数
代码语言:javascript
复制
#demo2:
def func(x, *para, y):
    print(x, para, y)

func(3, 4, y=5)
代码语言:javascript
复制
#output:
3 (4,) 5
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ==用法1:不定长参数==
    • ==注意:==
    • ==用法2:* 和 *para 后的参数调用时必须是关键参数==
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档