Discuss / Python / 自言自语

自言自语

Topic source

よろしく

#1 Created at ... [Delete] [Delete and Lock User]
def createCounter():
    count = 0
    def counter():
        nonlocal count
        count +=1
        return count
    return counter

# 测试:
counterA = createCounter()
print(counterA(), counterA(), counterA(), counterA(), counterA()) # 1 2 3 4 5
counterB = createCounter()
if [counterB(), counterB(), counterB(), counterB()] == [1, 2, 3, 4]:
    print('测试通过!')
else:
    print('测试失败!')

python的变量的作用域是在运行时确定的。模块层次的变量为全局变量,模块内的函数或类对模块的全局变量只有读取权限。如需修改,得使用global 、nonlocal关键字修饰


  • 1

Reply