# -*- coding:utf-8 -*- # 返回一个函数时,牢记该函数并未执行,返回函数中不要引用任何可能会变化的变量 # 闭包的用处/优点有两条: # 从函数外可以读取函数内部的变量 # 让这些变量的值始终保持在内存中(也可以理解为保留当前运行环境) def createcounter(): s = 0 f = [0] def counter(): # 闭包中内函数修改外函数局部变量: # nonlocal 关键字声明 一个变量, 表示这个变量不是局部变量空间的变量,需要向上一层变量空间找这个变量 # 以把闭包变量改成可变类型数据进行修改,比如列表。 f[0] = f[0] + 1 print(f[0]) nonlocal s s = s + 1 return s return counter counterA = createcounter() print(counterA(), counterA(), counterA(), counterA()) counterB = createcounter() if[counterB(), counterB(), counterB(), counterB()] == [1, 2, 3, 4]: print('测试通过!') else: print('测试失败!')
Python 闭包 返回函数
最新推荐文章于 2023-08-31 19:00:00 发布