我不明白這種行爲:傳遞變量和列表在Python
def getvariable(v):
v += 1
def getlist(l):
l.append(8)
myvariable = 1
mylist = [5, 6, 7]
print myvariable, mylist
getvariable(myvariable)
getlist(mylist)
print myvariable, mylist
輸出:
1 [5, 6, 7]
1 [5, 6, 7, 8]
爲什麼名單發生變化,但變化沒有? 如何更改函數中的變量? 很多人都說通過引用,通過對象引用傳遞值,所以我有點困惑,不知道它是如何實現的。
http://stackoverflow.com/questions/986006/python-how-do-i-pass-a-variable-by-reference他說Python始終傳遞值 –
作爲該答案的評論表明,該答案中使用的術語是混淆。如果你習慣了'C++'的「by-value」arg-passing,這會導致arg的**值**被複制和傳遞,那麼我的觀點就是:現在有這樣的東西(這種類型)在Python中傳遞值。 – shx2