我有一个for循环,其中包含yield语句,然后包含print语句。打印语句不会被调用。
我想包含一个函数调用以删除变量(一旦我在yield语句之后使用它),所以我想知道是否有可能在yield之后进行函数调用。
答案 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"
“删除变量”是什么意思?您最多可以做的是减少该对象的引用计数,如果您将生成器中的引用重新分配给其他对象,或者生成器对象被垃圾回收,无论如何都会发生。