def fun(li=[]): li.append("abc") return li print(fun(2))
时间: 2024-06-02 21:09:25 浏览: 53
def f(x,l=[]): for i in range(x): l.append(i*i) print(l) f(2) f(3,[3,2,1]) f(3)
5星 · 资源好评率100%
这段代码会抛出一个异常:TypeError: 'int' object is not iterable。
原因是在调用 `fun(2)` 时,参数 `li` 默认值为一个空列表 `[]`。然后在函数中调用了 `li.append("abc")`,将字符串 `"abc"` 添加到了这个列表中。
但是当再次调用 `fun()` 时,由于 `li` 的默认值已经被修改为 `["abc"]`,所以会再次将 `"abc"` 添加到这个列表中,导致列表中有两个 `"abc"`。
因此,如果你连续调用两次 `fun()`,会得到一个包含两个 `"abc"` 的列表。
阅读全文