- 主题:支持async接口, 几个a函数, 规范是怎么样的
gevent 方便与 async/await 麻烦不矛盾呀。喜欢 gevent 的方便的可以用 gevent,喜欢 async/await 的显式调用的可以用 async/await。
- 来自 水木社区APP v3.5.7
【 在 hgoldfish 的大作中提到: 】
:
: 所以这个 async/await 就是垃圾啊。换 gevent/eventlet.
:
: 后面 __add__, __getitem__, __getattr__ 是不是都要有 async 对应的接口版本。往 python 里面添加 async/await 关键字的人根本没想明白。见一次喷一次。
--
FROM 124.217.188.*
async/await 就是 yield from 的语法糖呀
- 来自 水木社区APP v3.5.7
【 在 hgoldfish 的大作中提到: 】
:
: 最早用 stackless python,后来有大牛把 stackless python 的核心 port 到 CPython 弄了 greenlet 模块,由此产生了 eventlet 和 gevent 两个好东东。我到现在都在用这两个。推荐大家用 gevent 来搞 python 协程。
:
: 在 async/await 之前,可以用 yield from 来做协程。twisted 用这个技术弄了个 inlineCallbacks. 后来 Python3 的开发人员脑抽了,从 c# 抄了 async/await 过来,python 社区陷入一团混乱。
:
: 楼主在问 __aenter__ 这些 magic method 的写法,就是 async/await 最重大的设计缺陷——它们是传染的,再搞下去最终 python 会分裂成 async 和非 async 两个社区。类似于 requests 已经有协程版本和非协程版本了。
--
FROM 124.217.188.*
Python 的 async/await 文档写得有点非常糟糕,对于新手不知从何看起,对于熟手来说错误百出,不如看代码。
据我所知目前的 async/await 是 vstinner 和 GvR 共同设计的。前者是为了构建他们自己的数据库组件(EdgeDB)。后者是为了让 Python 赶上协程这趟车。
现在看来其设计比较粗放,只是给 yield from 套了个壳。有些“高级”的功能是不支持的,比如将协程调度到其他线程并在其他线程继续执行后续操作。
--
FROM 124.217.188.*