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]だけではありませんか?
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]だけではありませんか?
print
returnへの再帰呼び出しの後にステートメントを実行するためですtest()
。
Pythonオブジェクトは常に参照によって渡されるため、テスト呼び出しの2回目の呼び出し時に、渡されtheList.append(x)
た元のリストに追加されます。これは、次に印刷するものです。
def test(x,theList):
if x < 2:
theList.append(x)
x = x + 1
test(x,theList)
print x
print theList
test(1,[])