作者left (881 forever)
看板Python
标题Re: [问题] funcion的参数问题
时间Wed Jul 15 13:11:02 2015
※ 引述《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://webptt.com/cn.aspx?n=bbs/Python/M.1436937067.A.FE8.html
1F:→ mikapauli: copy.deepcopy 07/15 14:42
2F:推 tyc5116: 我再研究研究,跟C++差异性有点大@@ 07/15 16:21
3F:→ ck574b027: 我怎麽记得C++传array或vector也会动到原本的物件 07/15 17:12
4F:→ ck574b027: mutable是非函数型语言的通病,只是呈现方式不一样而已 07/15 17:15
5F:→ left: 一楼是对的 sorry typo 07/15 22:40