【发布时间】:2011-01-30 09:36:47
【问题描述】:
在 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"
【问题讨论】:
-
Eric Lippert 在某处有一篇博文
-
考虑更多地使用制表符/空格来格式化你的代码。
-
制表符格式...确实是必要的,不是时间问题,是 python 问题。
-
只是根据要求改进了格式:)
-
现在已经旧了,但是调用 IronPython 是否可以解决这个问题?
标签: c# python system.reactive coroutine