代码

Python的拆包与JavaScript的解构赋值

2019-03-31  本文已影响0人  良歌画猛虎

在编写JavaScript代码的过程中,我对于解构赋值甚是喜爱:

let[x=1,y=x]=[2];

let{foo,bar}={foo:'aaa',bar:'bbb'};

配合上匿名函数,能直接写出这样的代码:

const func1 = ({a, b}) => a+b

const func2 = ([a, b]) => a+b

同样在Python中也有类似的语法,不过自由度稍弱,就是*args和**kwargs了。通常情况下,这两个语法出现在函数的形参中,用于接收不定长传参。事实上,它们还能做更多:

def z(a, b, c=None): ...

z(*[1, 2])

z(**{'a': 1, 'b': 2, 'c': 3})

正像上面所展示的,我们可以将这个语法应用到函数调用上。*[]是根据位置进行传参,当然,还有*(), *{}等等。**{}是根据形参名进行传参。

这两种方式的选择要看具体情况。

上一篇 下一篇

猜你喜欢

热点阅读