Python学习——利用闭包返回一个计数器函数,每次调动它返回递增整数

xiaoxiao2021-02-28  49

转自:https://blog.csdn.net/alicegotoanother/article/details/79079483

          https://www.cnblogs.com/majw/p/8242015.html

方法一:创建生成器            

def creatCounter( ): def f( ): x = 0 while True: x = x +1 yield x sum = f( ) def counter( ): return next( sum ) return counter

       这里没有直接调用f( ),即next( f( ) ),而是用定义sum = f( ),即next( sum ),

因为creatCounter( )返回的是counter这个函数,而此时f( )并没有执行并返回一个生成器对象,而执行next(sum)则会执行f( )生成一个新的生成器对象,变向的理解,s1 = f( ),s2 = f( ),但s1 == s2是false(这个变向理解感觉有点牵强)

方法二:创建列表

def creatCounter(): s = [0] def counter(): s[0] = s[0] + 1 return s[0] return counter
转载请注明原文地址: https://www.6miu.com/read-2620061.html

最新回复(0)