所以基本上我在Python3中观察到
a = 5
def addFive(x):
x+=5
return x
print(addFive(a),a)
输出将是“10 5”,因为函数不改变a。 但是,列表的情况并非如此:
a = [1,2,3]
def b(x):
z = x
z.append(10)
b(a)
print(a)
当我运行这个函数时,它改变了实际的列表。你知道吗
现在我的问题是:为什么会发生这种情况,我在哪里可以读到更多关于这一点(老实说,我不知道如何词我的谷歌搜索),我如何才能避免这一点。请随时重定向到其他文章,因为这可能是一个常见的问题,但我真的找不到任何类似的。你知道吗
提前感谢:)
Python
list
中的每个元素都是内存中的一个位置,因此当您修改元素时,实际上是在修改内存中的引用。因此,如果您熟悉C++,将列表传递到Python中的函数,在概念上与引用传递类似。你知道吗使用^{} 模块。你知道吗
这个指纹
相关问题 更多 >
编程相关推荐