任务:利用闭包返回一个计数器函数,每次调用它返回递增整数:
# 第一种方法:
def CreatCount():
def f():
n=0
while True:
n=n+1
yield n
return next(f())
L=CreatCount()
print(L)
# 第二个方法:
def createCounter():
def f():
n=0
while True:
n=n+1
yield n
sun = f()
def counter():
return next(sun)
return counter
L=createCounter()
print(L())
# 第三种方法:
def createCounter():
def f():
n=0
while True:
n=n+1
yield n
def counter():
return next(f())
return counter
L=createCounter()
print(L())
三种方法殊途同归,都是使用yield来完成的