python中的参数*和**的问题

在python开发过程中,有些函数的参数前面是带*的,和**的,也有的没有任何*,怎么理解,什么意思呢?

def add(data):
    sum = 0
    for i in data:
        sum = sum + i
    return sum


def add(*data):
    sum = 0
    for i in data:
        sum = sum + i
    return sum

在第一个例子中,我们如果想利用计算和,传参的正确方法是:add([23,45,67])

在第二个例子中,我们正确的传参是:add(2,34,5,6) 也可以这样 add(2,3),如果想借助第二个例子,把列表或者元组传入,

    add([3,4,5,6]) 就会报错,正确的写法可以写成add(*[3,4,5,6]),在list或者tuple传入的时候,前面加入*,会自动的将list或者tuple转化为可变参数传入

**如何理解的?首先如果在一个参数前面有这样的符号,那么这就是关键字参数。主要作用,能够扩展函数的功能。

比如有这样函数定义:

def add(**data):
    print data
add(data={'a':1,'b':4,'c':5})
>>{'data': {'a': 1, 'c': 5, 'b': 4}}

add(city='beijing',age=10)
>>{'city': 'beijing', 'age': 10}
**data 是关键字参数,接收的是一个dict。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想做个自由的人

随缘吧打赏与否还是会坚持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值