【发布时间】:2012-03-30 14:08:52
【问题描述】:
我的代码:
locs = [ [1], [2] ]
for loc in locs:
loc = []
print locs
# prints => [ [1], [2] ]
为什么loc 不是locs 元素的引用?
Python:除非明确复制,否则所有内容都作为引用传递[这不是真的吗? ]
请解释一下..python如何决定引用和复制?
更新:
怎么办?
def compute(ob):
if isinstance(ob,list): return process_list(ob)
if isinstance(ob,dict): return process_dict(ob)
for loc in locs:
loc = compute(loc) # What to change here to make loc a reference of actual locs iteration ?
- locs 必须包含最终处理的响应!
- 我不想使用
enumerate,没有它可以吗?
【问题讨论】:
-
一切都是按值传递的,但每个值都只是一个引用;)
标签: python reference pass-by-reference pass-by-value