前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python基础 | 受用终身的一颗星与两颗星

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

作者头像
算法与编程之美
发布2019-08-06 17:49:45
7900
发布2019-08-06 17:49:45
举报

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

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

代码语言:javascript
复制
def foo(*args, **kwargs):
    pass

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

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

代码语言:javascript
复制
def sum(a,b):
    return a+b

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

代码语言:javascript
复制
def sum1(*args):
    sum = 0
    for i in args:
        sum = sum + i
    return sum

sum1(1,2,3,4,5)
# 15

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

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

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

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

参考文献:

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

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

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

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