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

printreturnへの再帰呼び出しの後にステートメントを実行するためですtest()

Pythonオブジェクトは常に参照によって渡されるため、テスト呼び出しの2回目の呼び出し時に、渡され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 に答える