Python @coroutine decorator

问题描述 投票:0回答:1

有没有python中内置的coroutine装饰器?我在 tornado但在python中有没有类似这样的东西?

@coroutine
def func():
    while True:
        val = yield

这样我就可以调用它 send 立即到它,而不使用 next 首先,我想一个基本的方法是: 我想一个基本的方法就是。

def coroutine(func):
    @functools.wraps(func)
    def wrapper_coroutine(*args, **kwargs):
        f = func(*args, **kwargs)
        next(f)
        return f
    return wrapper_coroutine

但我想知道Python是否在某个地方内置了我所遗漏的东西

python python-3.x yield coroutine
1个回答
1
投票

你可能已经自己回答了,但为了让其他遇到这个问题的人受益,我也在找同样的东西,找到了下面的内容。

简单的答案,就像评论中所说的那样,标准库中似乎没有这样的东西。

的答案。词组及其应用 该网站上的内容指向了一个实施 @coroutine装饰师 由David Beazely编写,为了方便起见,下面列出了其中的一个代码片段。

def coroutine(func):
    def start(*args,**kwargs):
        cr = func(*args,**kwargs)
        cr.next()
        return cr
    return start
© www.soinside.com 2019 - 2024. All rights reserved.