python多参数函数(*args,**kwargs,zip,(*z))

zip

x = ['a','b','c']
y = [1,2,3]
z = zip(x,y)
print(z)
#>[('a', 1), ('b', 2), ('c', 3)]
#魔法般的解压方式
x,y,z = zip(*z)

拆分

def add(x,y):
    return x+y

a = 2
b = 3
c = [2,3]
add(2,3)
#等同于
add(*[2,3])

可变参数

def magic(*args,**kwargs):
    print('unnamed args:',args)
    print('keyword args:',kwargs)

arguments = (1,2)
kw_arguments = {'key2': 23333, 'key1': 'hello'}

magic(1,2,key1='hello',key2=23333)
#等同于
magic(*arguments,**kw_arguments)

(‘unnamed args:’, (1, 2))
(‘keyword args:’, {‘key2’: 23333, ‘key1’: ‘hello’})

默认参数

def Xmagic(a1,a2='default',*args,**kwargs):
    print('unnamed args:',args)
    print('keyword args:',kwargs)
    print('a1:',a1)
    print('a2=',a2)
>>> Xmagic('arguement 1',*[],**kw_arguments)
unnamed args: ()
keyword args: {'key2': 23333, 'key1': 'hello'}
a1: arguement 1
a2= default
>>> Xmagic('arguement 1',*arguments,**kw_arguments)
unnamed args: (2,)
keyword args: {'key2': 23333, 'key1': 'hello'}
a1: arguement 1
a2= 1
>>> Xmagic('arguement 1',key3='hello',*arguments,**kw_arguments)
unnamed args: (2,)
keyword args: {'key2': 23333, 'key1': 'hello', 'key3': 'hello'}
a1: arguement 1
a2= 1
>>> Xmagic('argument 1','argument 2',key3='hello',*arguments,**kw_arguments)
unnamed args: (1, 2)
keyword args: {'key2': 23333, 'key1': 'hello', 'key3': 'hello'}
a1: argument 1
a2= argument 2

Notes

未命名的参数一定写在传参的前面,keywords一定写在后面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值