0
>>> def square(x):
print('LINE A:', x)
x = x*x
print("LINE B:", x)
return x
>>> if __name__ == '__main__':
x = 5
print("LINE C:", x)
square(x)
print("LINE D:", x)
square(x + 1)
print("LINE E:", x)
產地:返回值
LINE C: 5
LINE A: 5
LINE B: 25
25
LINE D: 5
LINE A: 6
LINE B: 36
36
LINE E: 5
在我的理解,它應該返回如下:
LINE C: 5
LINE A: 5
LINE B: 25
25
LINE D: 25
LINE A: 25
LINE B: 676
676
LINE E: 676
在第一(頂部)函數,我分配參數x與X * X。 Therefeore,if name =='main':function,print(「LINE D:」,x)假設打印由之前調用的方形(x)返回的x。但由於某種原因,情況並非如此,我做錯了什麼?還是我的理解是不正確的?
P.S.我並不是完全想要糾正這個功能。我只是找到一個解釋,爲什麼它以這種方式工作。
您需要改寫'x = square(x)'。 – fenceop 2014-12-07 20:10:18
我並不是完全想要糾正這個功能。我只是找到一個解釋,爲什麼它以這種方式工作。 – amundi12 2014-12-07 20:13:39
'square()'函數不直接操作駐留在main()中的'x'變量。相反,它會複製其值並將其分配給也稱爲「x」的局部變量。 'x'(main)保持不變,除非你給它賦予'square(x)'的返回值。 – fenceop 2014-12-07 20:21:02