def createCounter():
def f():
n=0
while True:
n=n+1
yield n
sun = f()
def counter():
return next(sun)
return counter
创造生成器的方法里,为啥不能直接去调用f()呢,为什么要定义sun = f()
createCounter 返回的是 counter 这个函数,而此时 f() 并没有执行并返回一个生成器对象。所以每次 createCounter() 都会得到一个 counter 函数,而执行 counter(),都会执行 f() 而生成一个新的生成器对象
变向的理解,s1 = f(), s2 = f(),但是s1 == s2 是false