当我们声明一个星号的参数,如*param,那么从这一点开始到结束的所有位置的参数都被收集到一个叫param的元组中。
同样,当我们声明一个双星参数,如**param,那么从那一点开始到结束的所有关键字参数都被收集到一个叫param的字典中。

#!/usr/bin/env python
def total(initial = 5, *numbers, **keywords):
    count = initial
    print('count now is',count)
    for number in numbers:
        count += number
        print('number is',number)
        print('count now is',count)
    for key in keywords:
        count += keywords[key]
        print('key is', key)
        print('keywords is', keywords)
        print('keywords[key] is', keywords[key])
        print('count now is',count)
    return count


print(total(10, 1, 2, 3, vegetables = 50, fruits = 100))

上面这段代码中,调用total函数时,先将10传给形参initial,再将(1,2,3)传给形参元组numbers,最后将{vegetables = 50, fruit = 100}传给形参字典keywords。


应注意,传递字典时用的形式是 key = value

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐