- 主题:支持async接口, 几个a函数, 规范是怎么样的
async with: __aenter__, __aexit__
async for: __aiter__, __anext__
await: __await__
async: __aiter__(?, 不确定, 要返回awaible)
--
FROM 115.171.244.*
所以这个 async/await 就是垃圾啊。换 gevent/eventlet.
后面 __add__, __getitem__, __getattr__ 是不是都要有 async 对应的接口版本。往 python 里面添加 async/await 关键字的人根本没想明白。见一次喷一次。
【 在 poggy 的大作中提到: 】
: async with: __aenter__, __aexit__
: async for: __aiter__, __anext__
: await: __await__
: ...................
--
FROM 120.33.11.*
async/await不是更换过一次嘛
你对新旧两种都这么批判的话,我可以继续拖着不学了……
【 在 hgoldfish 的大作中提到: 】
: 所以这个 async/await 就是垃圾啊。换 gevent/eventlet.
: 后面 __add__, __getitem__, __getattr__ 是不是都要有 async 对应的接口版本。往 python 里面添加 async/await 关键字的人根本没想明白。见一次喷一次。
--
FROM 222.71.112.*
最早用 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 已经有协程版本和非协程版本了。
【 在 JulyClyde 的大作中提到: 】
: async/await不是更换过一次嘛
: 你对新旧两种都这么批判的话,我可以继续拖着不学了……
--
FROM 124.72.111.*
看你的意思,别用它就行了?
【 在 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 222.71.112.*
是啊。所有 async/await 都别用。用 gevent.
【 在 JulyClyde 的大作中提到: 】
: 看你的意思,别用它就行了?
--
FROM 124.72.111.*
唉不过我记得从3.7开始async成为关键字了
【 在 hgoldfish 的大作中提到: 】
: 是啊。所有 async/await 都别用。用 gevent.
--
FROM 222.71.112.*
但没关系啊。用 gevent 的 monkey patch 完全不愁缺模块。
而用上 async/await 的话,你就得考虑有没有人开发对应的 async 版本的模块了。比如 mysql-client 你得改用 asyncmy,pgsql 你得改用 asyncpg,再换个数据库。。可能没有了。
【 在 JulyClyde 的大作中提到: 】
: 唉不过我记得从3.7开始async成为关键字了
--
FROM 124.72.111.*
【 在 hgoldfish 的大作中提到: 】
: 但没关系啊。用 gevent 的 monkey patch 完全不愁缺模块。
: 而用上 async/await 的话,你就得考虑有没有人开发对应的 async 版本的模块了。比如 mysql-client 你得改用 asyncmy,pgsql 你得改用 asyncpg,再换个数据库。。可能没有了。
:
其实,我的问题就是和这样有关, 如果有异步版本可以用当然好,如果没有怎么办
一种是改造成异步版本, 另外就是, 加个异步的壳,下边本质还是同步调用,
无论这两种形式哪一种, 都需要对异步这几个特殊函数予以实现,这个时候,规范
有比较重要了
--
FROM 115.171.244.*
求教程
【 在 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 101.88.153.*