20161005 Python 函数

来源:互联网 发布:数控车床编程软件手机版 编辑:程序博客网 时间:2024/05/15 02:14
def calc(*numbers):    sum = 0    for n in numbers:        sum = sum + n * n    return sum

定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数:

>>> calc(1, 2)5>>> calc()0

如果已经有一个list或者tuple,要调用一个可变参数怎么办?可以这样做:

>>> nums = [1, 2, 3]>>> calc(nums[0], nums[1], nums[2])14

这种写法当然是可行的,问题是太繁琐,所以Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:

>>> nums = [1, 2, 3]>>> calc(*nums)14

*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。

0 0