Python-函数的参数传递(2)

接着上一次的内容,来介绍一种更加灵活的参数传递方式:

def func(*args)

这种方式的厉害之处在于,它可以接受任意数量的参数。来看具体例子:

def calcSum(*args):

sum = 0

for i in args:

sum += i

print sum

调用:

calcSum(1,2,3)

calcSum(123,456)

calcSum()

输出:

6

579

0

在变量前加上星号前缀(*),调用时的参数会存储在一个 tuple(元组)对象中,赋值给形参。在函数内部,需要对参数进行处理时,只要对这个 tuple 类型的形参(这里是 args)进行操作就可以了。因此,函数在定义时并不需要指明参数个数,就可以处理任意参数个数的情况。

不过有一点需要注意,tuple 是有序的,所以 args 中元素的顺序受到赋值时的影响。如:

def printAll(*args):

for i in args:

print i,

print

调用:

printAll(1,2,3)

printAll(3,2,1)

输出:

1 2 3

3 2 1

虽然3个参数在总体上是相同的,但由于调用的顺序不一样,结果也是不同的。

还有一种参数传递方式,既可以按参数名传递参数,不受位置的限制,又可以像 tuple 传递一样不受数量限制。这个我将在下次课中做介绍。

版权声明:
作者:yfeer
链接:https://www.yfeer.com/345.html
来源:个人编程学习网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>