码迷,mamicode.com
首页 > 编程语言 > 详细

python收集参数

时间:2018-12-11 00:41:07      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:学习   pre   bar   入参   tor   类型   基础教程   例子   定义   

最近学习python,看《Python基础教程》(第2版),发现函数定义里面有一个“收集参数”很有趣。

用户定义函数时,可以定义一个确定参数数量的函数,如:

>>> store(data, name1, name2, name3)

但是假如定义前不知道有多少个参数,该如何定义呢,C++和java中都有相应的解决方法,python中自然也有

def print_params(*params):
    print(params)

这里参数前面加上了星号*,即是不确定数量的参数,调用方式如下:

>>> print_params(Testing)
(Testing,)
>>> print_params(1, 2, 3)
(1, 2, 3)
>>> print_params()
()

从上面的三个例子可以看出,使用*作为不确定数量参数,输入参数为元组类型

这种方法为啥叫收集参数呢?因为它收集所有其余位置参数,这样其实说明,它只能在参数末尾进行收集,而不能在开头或者中间收集

 

除了收集散列的参数,还可以收集key-value字典类型的参数,例如:

def print_params_3(**params):
    print(params)

调用方式:

>>> print_params_3(x=1, y=2, z=3)
{z: 3, x: 1, y: 2}

二者一起用:

print_params_4(x, y, z=3, *pospar, **keypar):
    print(x, y, z)
    print(pospar)
    print(keypar)

调用方式;

>>> print_params_4(1, 2, 3, 4, 5, 6, 7, foo=1, bar=2)
1 2 3
(5, 6, 7)
{foo : 1, bar : 2}
>>> print_params_4(1,2)
1 2 3
()
{}

 

参数收集的逆过程:

函数参数使用*号收集得到元组,使用**收集得到字典,那么反过来使用元组和字典可以作为函数参数

def add(x,y):
    return x+y

>>> params = (1, 2)
>>> add(*params)
3

 

python收集参数

标签:学习   pre   bar   入参   tor   类型   基础教程   例子   定义   

原文地址:https://www.cnblogs.com/lxx-coder/p/10099939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!