【Python】*在函数中的应用

大类只有2种,虚参和传参。可以同时使用,如下:

def star(*l, **d):
    print(l)
    print(d)

star(*(1,2,3,4),**{'a':1})
# out:
# (1, 2, 3, 4)
# {'a': 1}

但没怎么看到过。一切脱离实用意义的炫技都是小丑。接下来解释:

  • 1.虚参:函数定义的时候使用 。*arg代表按照位置索引接收参数,汇聚成一个tuple;**args代表按照关键词索引接收参数,汇聚成一个dictionary。
    当不确定会进来几个参数的时候使用。
def star(*l, **d):
    print(l)
    print(d)

star(1,2,3,a=4)
# out:
# (1, 2, 3)
# {'a': 4}
# 1 2 3因为没有关键词,全部被当成位置索引,被吸收到*l参数,l变成了一个tuple。
# 4因为有关键词a,被当成关键词索引,被吸收到**d参数,d变成了一个dictionary。
    1. 传参:调用函数时的时候使用,*配合(),用来按照位置索引分配函数值;**配合{},用来按照关键词索引分配函数值。
      当需要让多个函数值分散排队的时候使用。

单*号,2个用法:

def star(a, b):
    print(a)
    print(b)

star(*(1,2)) 
# out:
# 1
# 2
# star(*(1,2)) 等价于 star(1,2) 

def star(*l):
    print(l)
    
star(*(1 for _ in range(2)) 
# out:
# (1, 1)
# star(*(1 for _ in range(2)) 等价于 star(1,1),也就是说*(1 for _ in range(2))等价于 1,1

双*号:

def star(a, b):
    print(a)
    print(b)

star(**{'a':1,'b':2}) 
# out:
# 1
# 2
# star(**{'a':1,'b':2}) 等价于 star(a=1,b=2) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值