在Python中,是否可以在yield语句之后调用方法?

时间:2019-02-09 20:05:34

标签: python-3.x

我有一个for循环,其中包含yield语句,然后包含print语句。打印语句不会被调用。

我想包含一个函数调用以删除变量(一旦我在yield语句之后使用它),所以我想知道是否有可能在yield之后进行函数调用。

1 个答案:

答案 0 :(得分:2)

在获得下一个值时,将继续执行生成器:

def gen():
    while True:
        yield 1
        print("After yield")

g = gen()
a = next(g)  # prints nothing
b = next(g)  # prints "After yield"
c = next(g)  # prints "After yield"

“删除变量”是什么意思?您最多可以做的是减少该对象的引用计数,如果您将生成器中的引用重新分配给其他对象,或者生成器对象被垃圾回收,无论如何都会发生。