我很好奇生成器中使用raise StopIteration和return语句之间的区别。
例如,这两个功能之间有什么区别吗?
def my_generator0(n):
    for i in range(n):
        yield i
        if i >= 5:
            return
def my_generator1(n):
    for i in range(n):
        yield i
        if i >= 5:
            raise StopIteration
我猜测更“pythonic”的方式是第二种方式(如果我错了,请纠正我),但据我所知,两种方式都会引发StopIteration异常。