彻底理解参数收集与参数分配

之前在读python代码时,总会遇到函数里有**kwarg, *param的写法,一直不是很清楚究竟是什么意思。今天,就来总结一下好了。

参数收集

在函数定义中,有时候会允许用户使用任意个参数,比如若干个数相加,但不确定一共有几个数。此时就可以使用一个参数来指代任意多的参数,它们都被存放在一个元组里。params就是函数print_params的参数,星号表示将调用时的参数都收集起来放在一个元组里,也就是params。如果没有可供收集的参数,params就是None

> def print_params (*params):
         print(params)
> print_params(1, 2, 3, 4, 5)
> (1 2 3 4 5)

一般,带星号的参数都放在参数列表最后。星号不会收集关键字参数,要收集关键字参数,需要两个星号,此时参数被收集到了一个dict里。

> def print_params(**params):
         print(params)
> print_params(x=1, y=2, z=3)
> {'x':1, 'y':2, 'z':3}

参数分配

参数收集是用在函数的定义里的,将参数收集在tuple或dict里,用在函数定义中;参数分配可以看成参数收集的逆过程,将tuple里或dict里的参数分配给函数的参数,用在函数调用中。

> params = (1, 2)
> def add(x, y):
          return x + y
> add(*params)
> 3

也可以将dict里的值分配给关键字参数

> params = {'x' : 5, 'y' : 3}
> def minus(x, y):
         return x - y
> minus(**params)
> 2

参数收集和参数分配一般不同时使用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,322评论 0 10
  • 该文章为转载文章,作者简介:汪剑,现在在出门问问负责推荐与个性化。曾在微软雅虎工作,从事过搜索和推荐相关工作。 T...
    名字真的不重要阅读 10,767评论 0 3
  • Python文件 Python程序保存为文件以.py结尾,一个简单的例子: .py文件能不能像.exe文件那样直接...
    胡奚冰阅读 7,622评论 0 1
  • “我的心灵宁静、清澈,有如晨朝的峰峦;然而他们却把我当作一个冷漠而刻薄的嘲弄者。此刻他们笑着我,在如冰霜的笑声中还...
    TracyWinchest3阅读 1,549评论 0 0
  • 学习画画第二天,对于画画的喜爱源于看了太多人的手账,总感觉人家都很厉害,自己也想能够画出和记录生活中的美好。...
    听心上花开阅读 1,760评论 1 0

友情链接更多精彩内容