def fun(li=[]): li.append("abc") return li print(fun())
时间: 2024-05-22 18:11:41 浏览: 119
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%
这段代码会打印出 ["abc"]。
在这段代码中,定义了一个函数 fun,它有一个默认参数 li,它的默认值是一个空列表 []。当函数被调用时,如果没有传入参数,就会使用默认值 []。
在函数内部,我们对列表 li 进行了 append 操作,向其中添加了字符串 "abc"。然后,函数返回了这个列表。
当我们第一次调用 fun() 时,由于没有传入参数,会使用默认值 [],并将 "abc" 添加到这个空列表中。因此,函数返回的是一个只有一个元素 "abc" 的列表。
但是,当我们再次调用 fun() 时,由于默认参数的值在函数定义时已经确定,因此仍然是使用上一次调用时创建的列表,也就是 ["abc"],并在其中再次添加了 "abc"。所以第二次调用函数返回的是一个有两个元素 "abc" 的列表。
因此,如果我们多次调用 fun(),每次调用会在上一次调用的基础上添加一个 "abc",最终得到的列表会越来越长。如果我们希望每次调用函数时都得到一个新的空列表,应该将默认参数设置为 None,然后在函数内部进行判断和处理。
阅读全文