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

相关文章:

  • 2022-12-23
  • 2021-12-09
  • 2022-12-23
  • 2018-05-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-05-24
  • 2022-12-23
  • 2021-07-21
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案