美文网首页
彻底理解参数收集与参数分配

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

作者: nowherespyfly | 来源:发表于2019-02-08 14:07 被阅读0次

之前在读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

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

相关文章

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

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

  • 2018-04-30小甲鱼18

    关键字参数: 函数会自动的找它的初值,找它的默认参数; 收集参数: print也有收集参数的作用。 函数与过程: ...

  • python参数、函数

    *args以元组方式收集参数 可以先以元组形式收集参数 再将元组作为参数**args是以字典形式收集参数 pyth...

  • chapter-3 常用JVM配置参数

    本章知识点 ■Trace跟踪参数■堆的分配参数■栈的分配参数 Trace跟踪参数 ■ -verbose:gc■-X...

  • 深入理解JVM(三)——配置参数

    JVM配置参数分为三类参数: 1、跟踪参数 2、堆分配参数 3、栈分配参数 这三类参数分别用于跟踪监控JVM状态,...

  • 参数,非参数,半参数

    非参数与参数理解 non-parametric model中参数是distribution free的,参数函数空...

  • JVM常用参数配置

    本文主要内容: Trace跟踪参数 堆的分配参数 栈的分配参数 JVM其他参数 既然学习JVM,阅读GC日志是处理...

  • 装饰器 *arg **args

    用 * 收集位置参数 用 ** 收集关键字参数 装饰器

  • ES6——参数展开

    函数的参数1 参数扩展/展开2 默认参数 参数扩展1 收集剩余的参数function show(a,b,...ar...

  • python基础教程笔记(chapt.6) 函数

    函数名(位置参数,关键参数,params,*param) * 调用时,位置参数写在最前面。 * *params收集...

网友评论

      本文标题:彻底理解参数收集与参数分配

      本文链接:https://www.haomeiwen.com/subject/csansqtx.html