为什么矩阵变量不能在python中的递归调用中保持局部

时间:2017-02-28 03:25:48

标签: python

这是一小段代码。

x=np.zeros((1,1))

def recur(n):
    a=n
    print a,n
    if(n[0]==3):
        return n
    n[0]=n[0]+1
    n = recur(n)
    print a,n

    return n


recur(x)

print语句的期望值是

0,0
1,1
2,2
3,3
2,3
1,3
0,3

但输出是

0,0
1,1
2,2
3,3
3,3
3,3
3,3
3,3

这意味着局部矩阵变量a实际上不是本地的。当其他变量(如整数)保持为局部时,为什么会这样呢?

我们如何克服这个问题?我需要一个在递归调用中保持完全本地的矩阵变量。

0 个答案:

没有答案