[問題] 函式中傳引數的問題
以下有兩個例子,第一個我覺的沒有問題,不過第二個我就不懂了,有問
題的地方在於我覺的主程式中大寫的X 與函式中小寫的x應該都是指向同一個
記憶體位址,而且加上它本身物件型態為「數值」(屬於不可變更的物件),
所以輸出的結果,第一個程式看來合理,不過為何第二個程式輸出的結果,
不是 1 [3, 4],反而是 2 [3, 4],請大家指教,謝謝 ^^
第一個:
def changer(x, y):
x = 2
y[0] = 'spam'
X = 1
L = [1, 2]
changer(X, L)
print X, L
輸出結果: 1 ['spam', 2]
第二個:
def multiple (x, y):
x = 2
y = [3, 4]
return (x, y)
X = 1
L = [1, 2]
(X, L) = multiple (X, L)
print X, L
輸出結果:2 [3, 4]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.108.206
推
02/23 12:47, , 1F
02/23 12:47, 1F
→
02/24 11:04, , 2F
02/24 11:04, 2F
→
02/24 11:05, , 3F
02/24 11:05, 3F
→
02/24 11:13, , 4F
02/24 11:13, 4F
Python 近期熱門文章
PTT數位生活區 即時熱門文章