编程语言
首页 > 编程语言> > python-将@property装饰器与@ asyncio.coroutine一起使用而不会产生可能的收益吗?

python-将@property装饰器与@ asyncio.coroutine一起使用而不会产生可能的收益吗?

作者:互联网

我想按照以下方式上课

Foo(object):
    @property
    @asyncio.coroutine
    def bar(self):
        # This will need to run some blocking code via loop.run_in_executor()
        return 'bar'

然后我想访问属性而不必从

# In a loop...
foo = Foo()
foo.bar    #This will return a generator object, but I want it to return 'bar'.
yield from foo.bar     #This will return 'bar', but I don't want to do the yield from.

这样的事情可能吗?

解决方法:

运行协程生成器的方法是使用来自另一个协程的yield from(在Python 3.5中等待). (await)的产量允许一个协程驱动另一个协程,这通常意味着您拥有链接的协程链,这些链最终由事件循环驱动.

另一个选择是使用类似asyncio.async的类似于Task的包装器(Python 3.5中为ensure_future())来驱动协程.

如果没有上述任何一项,根据您的观察,它只是一个惰性生成器对象(或Python 3.5中的协程).

标签:python-asyncio,python
来源: https://codeday.me/bug/20191120/2040446.html