若想让函数接受任意个参数,就可以定义一个可变的参数:
def fn(*args): print args fn() >>>() fn(1,2,5,6) >>>(1,2,5,6)
原理是Python解释器把传入的一组参数封装在一个tuple传递给可变参数,因此在函数内部,直接把变量args看成一个tuple就好了,目的是简化调用
小习题:
假设我们要计算任意个数的平均值,就可以定义一个可变参数:
def average(*args): ...
这样,在调用的时候,可以这样写:
>>> average() 0 >>> average(1, 2) 1.5 >>> average(1, 2, 2, 3, 4) 2.4
请编写接受可变参数的 average() 函数。
代码:
def average(*agrs): sum = 0.0 if len(args) == 0: return sum for x in agrs: sum = sum +x return sum / len(args) print average() print average(1,2) print average(1,2,3,4)