首页 > 试题广场 >

以下 Python 代码的输出是什么?

[单选题]
以下 Python 代码的输出是什么?
def func(x, lst=[]):
    lst.append(x)
    return lst

print(func(1))
print(func(2))
print(func(3))


  • [1,1]
    [2,2]
    [3,3]
  • [1]
    [1, 2]
    [1, 2, 3]
  • [1]
    [2]
    [3]
  • [1]
    [1]
    [1]
  1. 可变默认参数陷阱

    • 默认参数lst=[]只会在函数定义时创建一次
    • 后续调用不会重置这个列表,而是复用同一个列表对象

  2. 总结考点:

    • 函数默认参数的初始化时机(定义时而非调用时)
    • 可变对象(列表/字典)作为默认参数的风险
    • Python 的对象引用机制(同一列表对象被复用)

发表于 今天 19:45:53 回复(0)