python 3.x 错误 ‘generator’ object has no attribute ‘next’

import time

def consumeer():
    r = ''
    while True:
        n = yield r
        if not n:
            return
        print('[CONSUMER] Consumer %s...'%n)
        time.sleep(1)
        r = '200 ok'
def produce(c):
    c.next                            #c.__next__()            #python3以后next变成__next__
    n= 0
    while n<5:
        n = n+1
        print('[PRODUCE] Procude %s...'%n)
        r = c.send(n)
        print('[PRODUCE] Comsumer return:%s'%r)
    c.close()

if __name__ == '__main__':
    c = consumeer()
    produce(c)

在执行如下代码时,程序报错

AttributeError: 'generator' object has no attribute 'next'

原因是:

python3以后的generator的next变成了__next__,next是之前的用法

猜你喜欢

转载自blog.csdn.net/alicia_n/article/details/81220666