您当前的位置: 首页 >  Python

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

发布时间:2019-08-04 00:00:00 ,浏览量:0

欢迎点击「算法与编程之美」↑关注我们!

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

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

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 - chen	
age - 12	
gender - male

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

参考文献:

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

 where2go 团队

   

微信号:算法与编程之美          

640?wx_fmt=jpeg

长按识别二维码关注我们!

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.3466s