Consider:
args = ['-sdfkj']
print args
for arg in args:
print arg.replace("-", '')
arg = arg.replace("-", '')
print args
这将产生:
['-sdfkj']
sdfkj
['-sdfkj']
。
循环中的
['sdfkj']
是副本吗?它的行为就好像它是一个副本(或者可能是一个不可变的thingie,但是我希望会抛出一个错误…)
。。
最佳答案
循环中的arg是副本吗?
是的,它包含一份参考资料。
。只修改局部变量arg
指向的内容。
Before assignment After assignment
args arg args arg
| | | |
| | | |
(array) / (array) 'sdfkj'
|[0] / |[0]
\ / |
\ / |
'-sdfkj' '-sdfkj'