1
def test(x,theList): 
    theList.append(x) 
    if x < 2: 
        x = x + 1 
        test(x,theList) 
        print x 
        print theList 

test(1,[]) 

为什么结果是[1,2]?不仅[1]?

4

2 回答 2

2

print因为你在递归调用test()returns之后执行语句。

Python 对象总是通过引用传递,因此当第二次调用 test 调用theList.append(x)时,它会附加到传入的原始列表中,然后打印出来。

于 2012-11-18T22:51:39.303 回答
0
def test(x,theList): 
    if x < 2: 
        theList.append(x) 
        x = x + 1 
        test(x,theList) 
        print x 
        print theList 

test(1,[]) 
于 2012-11-18T22:53:31.733 回答