python星号怎么输入_python 星号的使用

python 星号的使用

在调用或者使用函数的时候经常会出现*,有的时候用一个,有的时候用两个,这个含义具体是什么呢?

定义方法时使用星号

一个星号的情况:

def fun(*args):

print(isinstance(args, tuple)) #返回的是True

for i in args:

print(i)

fun(1, 2, 3)

上面的例子表示,我们虽然传递了3个参数1, 2, 3,但是fun函数把他们放到了一个元组。并且参数的个数不限。

两个星号的情况:

def fun2(**kwargs):

print(isinstance(kwargs, dict)) #返回的是True

pass

fun2(a=1, b=2, c=3)

上面的例子表明,使用两个星号,我们传递的参数是被当作一个字典来进行传递的,参数的个数不限。其实我们看kwargs这个名字就可以推出,这个参数是字典类型的。

调用方法时使用星号

一个星号的情况

def fun(a, b, c):

return a+b+c

test = [1, 2, 3]

print(fun(*test))

#把序列test中的每个元素,当作位置参数传递到函数中去,就不用test[0],test[1]这样了

前提是传递序列中元素的个数应该和函数定义的参数。

实际上使用一个星号其实是对列表进行解包操作。

两个星号的情况

def fun(c, b, a):#注意顺序

return a==1 and b==2 and c==3

test = {'a':1, 'b':2, 'c':3}

print(fun(**test))

虽然字典中的定义的数据和函数定义的顺序不一致,但是我们是按照关键字来进行函数赋值的,所以这个函数返回的结构是True

使用两个星号实际是对字典进行解包操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值