前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【python笔记】两个魔法变量*args 和**kwargs

【python笔记】两个魔法变量*args 和**kwargs

原创
作者头像
python亦希
发布2022-01-25 10:07:48
3620
发布2022-01-25 10:07:48
举报
文章被收录于专栏:python理论

*args 和 **kwargs 主要⽤于函数定义。

代码语言:txt
复制
# 注意:标准参数与*args、**kwargs在使⽤时有顺序要求
代码语言:txt
复制
def test_var(firstVar, *args, **kwargs):
    print(f"第一个位置参数:{firstVar}")
    # for arg in args:
    #     print(f"其他位置参数{arg}")
    print(f"*args={args}")
    # for key, value in kwargs.items():
    #     print(f"其他关键字 参数{key}={value}")
    print(f"**kwargs={kwargs}")

首先,魔法变量args 和**kwargs中,变量名args与kwargs只是两个通俗的命名约定非固定不变,可以其他命名vars,**kwars。

然后,魔法体现在和**上。args表示变量args接收不定数量,非命名参数,返回一个元组--所有没有名字无人认领的传入参数组成顺序元组。**kwargs表示变量kwargs接收不定数量,关键字命名参数,返回一个字典--所有以“keyName=value“形式传入的参数组成字典。

代码中的标准参数,就是位置参数firstVar。

函数定义,参数顺序:标准参数→*args→**kwargs

调用函数,传参顺序:位置参数→关键字参数

最后,测试应用。

代码语言:txt
复制
if __name__ == "__main__":
    test_var("888", 5, 6, "abc", average=55, score=63, stuName="WuLiLy")

输出:

代码语言:txt
复制
第一个位置参数:888

*args=(5, 6, 'abc')

**kwargs={'average': 55, 'score': 63, 'stuName': 'WuLiLy'}

最最后,知道参数是怎么传递的,也知道参数保存的地方,那么函数里的操作就有很大空间,函数的功能也会更加丰富包容。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档