【发布时间】:2014-11-04 08:11:31
【问题描述】:
我有以下代码
def hidePasswords(L, password):
for elem in L:
if elem == password:
elem = "*"*len(password)
return L
print(hidePasswords(["test","test1","test8"],"test"))
它返回['test', 'test1', 'test8'] 而不是['****', 'test1', 'test8']。当我将功能更改为
def hidePasswords(L, password):
temp = []
for elem in L:
if elem == password:
elem = "*"*len(password)
temp.append(elem)
return temp
它工作正常。
为什么 Python 会这样?我完全理解第二个代码中发生的事情,但我不理解第一个代码的行为。
【问题讨论】:
标签: python function reference arguments argument-passing