假设你有这个功能: def f(..., visited= set()) .
def f(..., visited= set())
在里面,你打电话 f() 再一次。
f()
否。默认参数已处理 当 def visited ,同一个集合将被重用,并且常常会导致意外的结果。
def
visited
Python documentation :
计算默认值 在 范围,所以。。。
以及 重要警告
默认值只计算一次。当默认值是可变对象(如列表、字典或大多数类的实例)时,这会有所不同。例如,以下函数将在后续调用时传递给它的参数累加起来: