打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python基础 | 受用终身的一颗星与两颗星

在平时的学习或者开发过程中,经常会遇到下面的函数定义形式,在形参定义列表中,可能会有一个星*,也可能会有两个星**,如下所示:

def foo(*args, **kwargs): pass

你了解二者之间的区别吗?一个星和两个星的作用是什么?什么情况下会使用?如果你能一眼就得出答案,那么本文对于你来说就没什么价值,反之,本文还是非常值得一看的。

首先来看一个简单的两个数求和的函数,如下所示:

def sum(a,b): return a+b

上面代码实现了两个数的求和,如果要实现任意多个数的求和,那该怎么办呢?这个时候就轮到一个星派上用场了。

def sum1(*args): sum = 0 for i in args: sum = sum + i return sum
sum1(1,2,3,4,5)# 15

上面的代码非常的简单易懂,也非常易于理解。所谓一个星指的就是函数接收任意多个参数,可以理解为是一个任意大小的一维数组,这样参数信息就保存在这个数组中,函数体中可以遍历这个数组,进行相关运算。

了解了一个星的作用之后,接下来就可以看看两个星的作用了。两个星与一个星相同的地方在于都是可以接收任意多个参数,不同之处在于,两个星接收的每个参数都有一个名字,是一种字典类型的结构。

def foo(**kwargs): for key, value in kwargs.items(): print('{} - {}'.format(key,value))
foo(name='chen',age=12,gender='male')输出结果为:name - chenage - 12gender - male

本文介绍了函数定义中常见的一个星与两个星的用法及区别,其用途非常广泛,主要是用来解决函数接收任意多个参数的场景。

参考文献:

[1] keyword arguments in python. https://treyhunner.com/2018/04/keyword-arguments-in-python/

 where2go 团队


微信号:算法与编程之美          

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
教你一招 | Python: 函数参数魔法
什么是 args 和 kwargs 的概念以及我们如何以及何时在 python 程序中使用它们
Python编程——修饰器
python——函数
学好python拿高薪系列一(4):函数使用
python函数可变长参数(*args,**kwargs)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服