当前位置:首页 > 技术分析 > 正文内容

Python中神奇的参数*args和**kwargs使用方法详解

在编程中,我们定义一个函数来完成某项功能,实现可重用代码。调用函数时,可以传递给函数不同的值,该值在 Python函数中称为参数。

让我们定义一个使用两个参数的简单函数:

在上面的程序中,我们定义了一个带有两个参数的函数。我们在调用函数时传递两个,我们得到两个数字的乘积作为输出。

*args

如果我们需要计算三个数字的乘积,该怎么办?如果尝试向函数添加额外的参数,如下所示,程序将返回错误。

当我们不确定函数的参数数量时,我们使用*args、**kwargs作为参数。Python允许我们将可变数量的参数或非键值对参数 *args、**kwargs传递给函数。

在函数中,我们在参数名称前使用星号(*)来表示可变长度的参数。参数作为元组传递。

*args中 关键是星号(*),表示来接收可变数量的参数,通常与args一词一起使用,也可以使用其他词。

**kwargs

Python可以使用*args传递多个参数,但是不能使用它来传递键值对(字典)参数。Python另一个名为 **kwargs的参数允许我们将字典类型的键值对参数传递给函数。

输出结果:

a - 10
b - 20
c - 30
d - 40

同样,**kwargs使用两个星号来传递可变数量的键值对参数,kwargs不是必需的,可以用其他词来代替。

在函数调用中使用 *args 和 **kwargs

我们还可以使用*args*和*kwargs将参数传递到函数中。

输出结果:

24
a: 10
b: 20
c: 30

文中涉及代码:

def cheng(x,y,z):
    return x*y*z
args=(2,3,4)
print(cheng(*args)) #输出24

def myFun2(a,b,c):
    print("a:",a)
    print("b:",b)
    print("c:",c)

dict1={'a':10,'b':20,'c':30}
myFun2(**dict1)

def myFun(**kwargs):
    for i in kwargs:
        print(i,'-',kwargs[i])

myFun(a=10, b=20, c=30, d=40)

def cheng(*args):
    c=1
    for n in args:
        c=c*n
    return c

print(cheng(2,3)) #输出6

print(cheng(2,3,4))  #输出24

print(cheng(2,3,4,5))  #输出120

def cheng(x,y):
    return x*y

print(cheng(2,3))

print(cheng(2,3,4))

感谢阅读,关注我,精彩继续!

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4704.html

标签: kwargs.get
分享给朋友:

“Python中神奇的参数*args和**kwargs使用方法详解” 的相关文章

费用报销管控紧抓三个要点,网上报销系统助力企业做好报销管理

财务人员在进行费用报销管控时,多多少少会遇到一些棘手的情况。费用报销管控的要点是什么?这是很对财务朋友非常关心的一个问题,今天就给大家讲解一下费用报销管控的3个要点!关键点一:要求员工把报销单上面的关键信息填写完整那么报销单上的关键信息有哪些呢?不同的费用类型,关键信息不一样,比如交通费发票,火车票...

抖音 Android 性能优化系列:启动优化实践

启动性能是 APP 使用体验的门面,启动过程耗时较长很可能使用户削减使用 APP 的兴趣,抖音通过对启动性能做劣化实验也验证了其对于业务指标有显著影响。抖音有数亿的日活,启动耗时几百毫秒的增长就可能带来成千上万用户的留存缩减,因此,启动性能的优化成为了抖音 Android 基础技术团队在体验优化方向...

美国民众负债累累 但今年假期消费者支出仍将创下新高

智通财经APP获悉,在迎接假期之际,许多美国人已经背负了创纪录的信用卡债务。然而,今年假期消费者支出仍将创下新高。根据美国零售联合会(NRF)上周发布的报告,预计今年11月1日至12月31日期间的消费总额将达到创纪录的9795亿至9890亿美元之间。NRF首席经济学家Jack Kleinhenz表示...

15款测试html5响应式的在线工具

手机、平板灯手持设备的增多,网站要顺应变化,就必须要做响应式开发,响应式网站最大的特点在于可以在不同设备下呈现不同的布局,是基于html5+css3技术,目前越来越多的网站开始采用了响应式设计,而下面15款工具可以方便测试你的html5响应式效果。Responsinatorhttp://www.re...

HTML5最新版本介绍

HTML5是HTML4.01和XHTML1.0之后超文本标记语言的最新版本,由一群自由思想者设计,最终实现了多媒体支持、交互性、更智能的表单和更好的语义标注。 HTML 5不只是 HTML规范的最新版本,它是用于生成现代 Web内容的一系列相关技术的总称,其中最重要的三个技术是:HTML5核心规范...

微信外H5跳转小程序——组件(vue项目)

场景有个H5(vue项目),需要实现点击商品item跳转到小程序,微信内和微信外都要支持,这里我们只介绍一下H5在微信外的跳转。如图所示,红框内是一个商品,就是点击这里,要跳转小程序:配置微信小程序云开发(云函数)1、开通云开发然后选择免费额度2、云开发权限设置找到权限设置,把这里的「未登录用户访问...