芜湖不芜
在python中,列表是通过object-reference传递的。实际上,python中的所有内容都是一个对象,但是当您传递一个变量以使其起作用时,如果更改了值,它将创建该对象的本地副本,但是如果是列表,则如果它创建了本地副本,则即使引用仍保留到先前列表,它也会创建一个本地副本。目的。因此,列表的值将不会更改。\您可以参考链接。您可以检查以下示例以进行澄清。def fun1(b): for i in range(0,len(b)): b[i]+=4arr=[1,2,3,4]print("Before Passing",arr)fun2(arr)print("After Passing",arr)#output#Before Passing [1, 2, 3, 4]#After Passing [5, 6, 7, 8]如果您不希望任何函数意外更改值,则可以使用不可变的对象,例如元组。编辑:(复制示例)我们可以通过打印两个对象的ID进行检查。def fun(a): a=5 print(hex(id(a)))a=3print(hex(id(a)))fun(a)# Output:# 0x555eb8890cc0# 0x555eb8890d00但是,如果我们使用List对象来执行此操作:def fun(a): a.append(5) print(hex(id(a)))a=[1,2,3]print(hex(id(a)))fun(a)# Output:# 0x7f97e1589308# 0x7f97e1589308