【发布时间】:2022-11-01 14:11:54
【问题描述】:
def check(val, list=[]):
list.append(val)
return list
list1=check("a")
list2=check("b",[])
list3=check("c")
如果我运行list1 并检查输出,它会显示["a"]
但是,如果我同时运行 list1、list2 和 list3
单元格并检查 list1 它显示 ['a','c'],有人可以解释为什么会这样吗?
【问题讨论】:
-
它可以保存自己的列表,您可以在这里提供
list2=check("b",[]) -
请避免使用
list作为变量/参数名称。它是一个内置函数。但是您的实际问题是使用 [] 作为默认分配。该引用是在函数定义中创建的,并与后续调用保持一致。正确的技术是使用 None 作为默认值,并在函数开始时检查 None,并将其分配为 [] (一个新列表)。
标签: python