【发布时间】:2012-04-01 06:14:58
【问题描述】:
我对 Python 引用感到困惑。考虑以下示例:
我的任务:编辑列表中的每个元素
d = { 'm': [1,2,3] }
m = d['m']
m = m[1:] # m changes its reference to the new sliced list, edits m but not d (I wanted to change d)
同样:
d = { 'm': [1,2,3] }
m = d['m']
m = m[0] # As per python referencing, m should be pointing to d['m'] and should have edited d
在python中,一切都是通过引用进行的,那么什么时候创建一个新对象?
我们是否总是需要来自copy 模块的copy 和deepcopy 来制作对象副本?
请澄清。
【问题讨论】:
-
如果你是视觉学习者,here's 一个很好的教程
-
非常有帮助的评论 @jordoex 先生 - 非常棒!
标签: python reference pass-by-reference pass-by-value