python函数星号参数详解

kkkkk 2018年12月17日 22:48 Python基础

函数在定义中,通过在参数前加星号,将传递进来的多个参数转化为一个对象,元组或字典,可以说是将这些参数值收集起来。

参数前加一个星号,表明将所有的值放在同一个元组中,该参数的返回值是一个元组。

参数前加两个星号,表明将所有的值放在同一个字典中,该参数的返回值是一个字典。

>>> def print_param(x, y, z = 3, *pospar, **keypar):
    print x,y,z
    print pospar
    print keypar
  
>>> print_param(3,4,5,6,7,8,m = 1,n = 2)
3 4 5
(6, 7, 8)
{'m': 1, 'n': 2}

分配参数

函数在调用中,通过在参数前加星号,传递的参数必须是元组或字典,能够将其值转化为相应变量的值,这个过程可以看做参数值的分配。

参数前加一个星号,表明将元组值分配给对应的函数参数值。

参数前加两个星号,表明将字典中的值赋给键,函数的定义中要将键作为参数名。

>>> def add(x,y):
    print x,y
    return x + y
  
>>> add(*param)
1 2
3
  
>>> def test(name,age):
    print name,age
  
>>> m = {'name':'xiaoli','age':'12'}
>>> test(**m)
xiaoli 12
>>> m = {'name':'xiaoli','age':12}
>>> test(**m)
xiaoli 12



文章评论(0)
  • avatar kkkkkk 2018年12月21日 11:31
    真干活啊
    kkkkk
    2018年12月21日 11:16
    拖泥带水,语不明晰。文句生涩,未能达意。草率成偏,殊少意义。快乐之状,耀然纸上。
    回复
  • avatar kkkkkk 2018年12月21日 11:31
    一看就是复制粘贴的啦!
    kkkkklxinde
    2018年12月21日 11:17
    文章中心明确,内容充实。论证层层推导,步步深入,结构严谨,语言灵动而有质感,张弛有度,开合自如。
    回复
  • avatar kkkkklxinde 2018年12月21日 11:17
    文章中心明确,内容充实。论证层层推导,步步深入,结构严谨,语言灵动而有质感,张弛有度,开合自如。
    回复
  • avatar kkkkk 2018年12月21日 11:16
    拖泥带水,语不明晰。文句生涩,未能达意。草率成偏,殊少意义。快乐之状,耀然纸上。
    回复