问题与“最小惊讶”和可变默认参数不同。

我运行这样的代码:

def funtest(L=[]):
    L.append(L)
    return L
print(funtest([2]))
print(funtest([3]))
print(funtest([4]))

实际输出在下面。

[2, [...]]
[3, [...]]
[4, [...]]

I know a very heated discussion about the Mutable Default Arguments in before: Least Astonishment” and the Mutable Default Argument

根据Mutable Default Arguments规则,我认为输出应为:

[2, [...]]
[2,3, [...]]
[2,3,4, [...]]

有人对此有想法吗?谢谢