首页 > 试题广场 >

以下Python代码执行后,输出的结果是? def crea

[单选题]
以下Python代码执行后,输出的结果是?
def create_counter():
    count = 0
    def counter():
        nonlocal count
        count += 1
        return count
    return counter
c1 = create_counter()
c2 = create_counter()
print(c1(), c1(), c2())
  • 1 2 1
  • 1 1 1
  • 0 1 0
  • 报错(UnboundLocalError)
# 如果没有 nonlocal count,这里会报错 
count += 1 # UnboundLocalError!
  1. c1 = create_counter():创建第一个计数器实例,count=0
  2. c2 = create_counter():创建第二个独立的计数器实例,count=0
  3. c1():第一次调用,count从 0 变为 1,返回 1
  4. c1():第二次调用,count从 1 变为 2,返回 2
  5. c2():调用第二个计数器,count从 0 变为 1,返回 1
发表于 2025-10-24 17:54:10 回复(0)