如果没有声明解释,Python返回

时间:2017-06-07 16:50:39

标签: python

我无法理解这个例子:

def mysum(L):
 first, *rest = L
 return first if not rest else first + mysum(rest)

我认为声明意味着首先!=休息,所以它必须先返回,但它首先返回+ mysum(休息)。 你能解释一下原因吗? TIA

1 个答案:

答案 0 :(得分:1)

如果您不理解三元,请重新编写。

if not rest: 
    return first 
else:
    return first + mysum(rest)

用语言来说,如果没有剩下的东西,则返回你拥有的东西,否则返回当前元素加上剩余列表的总和。

  

我认为该陈述意味着首先!=休息,

不。 if not rest是声明,如

>>> not []
True