【Python 课堂】第68课—— 函数的参数传递(2)

    作者:在线学习平台更新于: 2014-10-28 10:30:54

    大神带你学编程,欢迎选课

    接着上一次的内容,来介绍一种更加灵活的参数传递方式:
     
    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 传递一样不受数量限制。这个我将在下次课中做介绍。

课课家教育

未登录

1