Python中的*args和**kwargs是什么?该如何使用?

本文介绍了Python中*args和**kwargs的用途,它们分别用于接收可变数量的位置参数和关键字参数。*args表示位置参数,解包传入的列表;**kwargs表示关键字参数,解包成字典。理解这两者对于编写灵活的函数至关重要。文中通过实例展示了如何在函数定义和调用中使用*args和**kwargs。
摘要由CSDN通过智能技术生成


全文共2911字,预计学习时长9分钟

来源:Pexels

在编程中,函数就是生命!

 

作为使用Python的新手——无论是编程新手,还是熟悉另一语言的人——都需要学习函数定义中的参数数目是否和想要传达的变元数目匹配。

 

这是基础性知识——有助于了解这个世界。

 

然而,接触到函数定义中的*args和**kwargs时,也会让新手刚开始就遇到心理障碍。

 

在Python中的代码中经常会见到这两个词 args 和 kwargs,前面通常还会加上一个或者两个星号。

 

别被这些语句所绊倒。其实这些并不是什么超级特殊的参数,也并不奇特,只是编程人员约定的变量名字,args 是 arguments 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数。

 

这其实就是 Python 中可变参数的两种形式,并且 *args 必须放在 **kwargs 的前面,因为位置参数在关键字参数的前面。

 

接下来,我们就具体学学如何使用它们。

 

位置参数vs关键字参数

 

为了学习什么是*args和**kwargs,我们需要区分两个概念。

 

首先,分清楚位置参数和关键字参数的区别。在最基本的函数中,做一个匹配游戏——参数1与参数1匹配,参数2与参数2匹配,诸如此类。

 

def printThese(a,b,c):
   print(a, "is stored in a")
   print(b, "is stored in b")
   print(c, "is stored inc")printThese(1,2,3)
"""
1 is stored in a
2 is stored in b
3 is stored in c
"""

三项参数都是必需的,缺了其中一个就会致错。

 

def printThese(a,b,c):
   print(a, "is stored in a")
   print(b, "is stored in b")
   print(c, "is stored inc")printThese(1,2)
"""
TypeError: printThese() missing 1 required positional argument: 'c'
"""

 

为某函数定义中的参数给定默认值,该参数随后就会变为可选参数。

 


  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值