在 python 中,yield 关键字可以在推送和拉取上下文中使用,我知道如何在 c# 中执行拉取上下文,但我将如何实现推送。我发布了我试图从 python 在 c# 中复制的代码:
def coroutine(func):
def start(*args,**kwargs):
cr = func(*args,**kwargs)
cr.next()
return cr
return start
@coroutine
def grep(pattern):
print "Looking for %s" % pattern
try:
while True:
line = (yield)
if pattern in line:
print line,
except GeneratorExit:
print "Going away. Goodbye"