如何在python的递归函数中定义共享列表?

时间:2020-07-01 14:37:01

标签: python recursion global local encapsulation

我想封装我的函数并在函数中定义列表,而不是在列表之前! 例如以下代码:

s = []
def rec(n):
    if n == 0:
        return s
    else:
        s.append(n)
        rec(n-1)
        return s
print(rec(5))

但是当我在递归函数中定义它时,它将变成局部的。

1 个答案:

答案 0 :(得分:1)

您可以通过在递归函数的参数中传递列表(具有默认值)来实现此目的:

def rec(n, s=[]):
    if n == 0:
        return s
    else:
        s.append(n)
        rec(n-1, s)
        return s
print(rec(5))