生成器
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就报错了? 5没报错,6报错了,你要么改
g = gen(6)
要么删除一个print 逃兵 发表于 2021-2-1 17:46
5没报错,6报错了,你要么改
g = gen(6)
要么删除一个print
为啥5就会报错呢? 你 i 的范围就是 0 - 4 ,前面 5次next 就全部迭代出来了,那第 6 次肯定报错啊,不然还能返回什么值? xy1770 发表于 2021-2-1 17:52
为啥5就会报错呢?
你自己输入的生成器里面就 5 个元素,0~4超出就会抛出错误
相当于你把生成器都生成空了,而你还想叫这个生成器生成元素
页:
[1]