xy1770 发表于 2021-2-1 17:42:18

生成器

def gen(maxnum):
        for i in range(maxnum):
                yield i

g = gen(5)
print( next(g) )
print( next(g) )
print( next(g) )
print( next(g) )
print( next(g) )
print( next(g) )



为啥到5就报错了?

逃兵 发表于 2021-2-1 17:46:46

5没报错,6报错了,你要么改
g = gen(6)
要么删除一个print

xy1770 发表于 2021-2-1 17:52:01

逃兵 发表于 2021-2-1 17:46
5没报错,6报错了,你要么改
g = gen(6)
要么删除一个print

为啥5就会报错呢?

°蓝鲤歌蓝 发表于 2021-2-1 17:52:14

你 i 的范围就是 0 - 4 ,前面 5次next 就全部迭代出来了,那第 6 次肯定报错啊,不然还能返回什么值?

Twilight6 发表于 2021-2-1 17:54:04

xy1770 发表于 2021-2-1 17:52
为啥5就会报错呢?



你自己输入的生成器里面就 5 个元素,0~4超出就会抛出错误

相当于你把生成器都生成空了,而你还想叫这个生成器生成元素

页: [1]
查看完整版本: 生成器