What is functionality of the '[recur]' in 'retur



我已经在CodeWars上用另一种方式解决了这个挑战,现在我正在从其他解决方案中学习。其中之一是:

# Recursive solution
def sqInRect(lng, wdth, recur = 0):
if lng == wdth:
return (None, [lng])[recur]            # If this is original function call, return None for equal sides (per kata requirement);
# if this is recursion call, we reached the smallest square, so get out of recursion.
lesser = min(lng, wdth)
return [lesser] + sqInRect(lesser, abs(lng - wdth), recur = 1)

你能给我解释一下这一行是什么意思吗:return (None, [lng])[recur](特别是[recur]-我没有在任何地方看到这样的东西…它是索引,列表还是别的什么?它提供了什么功能?)我知道代码是做什么的,因为我的代码以另一种方式做同样的事情,但我只问return中的这个方括号非常感谢!

这没什么神奇的;这是元组索引,简单明了。

(None, [lng])创建一个包含两个元素的元组,[recur]根据recur是0还是1来获取这个元组的第一个或第二个元素。

最新更新