Re: [問題] funcion的參數問題

看板Python作者 (881 forever)時間10年前 (2015/07/15 13:11), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串2/3 (看更多)
※ 引述《tyc5116 (累人啊....)》之銘言: : 請問一下下面的範例 : def func(_List): : _List.append("a") : def func2(_int): : _int+=10 : testList = [] : testList.append("1") : testInt = 1 : func(testList) : func2(testInt) : print(len(testList)) : print(testInt) : 出來的結果是2和1 : testInt結果是我所預期的沒問題,問題在於func : 我傳進去的的List為什麼會被改變? : 我希望傳list進去後產生一個副本,副本可以被改變,但是原始的list不要作變動 : 那麼我的func該如何修改? 為什麼會改變我在上一篇的推文有幫你解釋了 至於要怎麼解決 你可以參考 https://docs.python.org/2/library/copy.html 怕你對記憶體觀念不清楚 我建議你 import copy 然後使用deep.copy() 這樣最保險 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.113.80.205 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1436937067.A.FE8.html

07/15 14:42, , 1F
copy.deepcopy
07/15 14:42, 1F

07/15 16:21, , 2F
我再研究研究,跟C++差異性有點大@@
07/15 16:21, 2F

07/15 17:12, , 3F
我怎麼記得C++傳array或vector也會動到原本的物件
07/15 17:12, 3F

07/15 17:15, , 4F
mutable是非函數型語言的通病,只是呈現方式不一樣而已
07/15 17:15, 4F

07/15 22:40, , 5F
一樓是對的 sorry typo
07/15 22:40, 5F
文章代碼(AID): #1LfUjh_e (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1LfUjh_e (Python)