찾다

 >  Q&A  >  본문

asyncio - python3.5 中使用chain coroutine

想在python3.5实现chain coroutine

#!/usr/bin/env python3.5

import sqlite3
import myslice
import json
import asyncio

conn = sqlite3.connect('db.sqlite')
cursor = conn.cursor()

def user():
    cursor.execute("SELECT user_id, config, password from user")
    for row in cursor:
        item = yield row[0], json.loads(row[1]), row[2]

@asyncio.coroutine
def account():
    item = yield from user()
    user_id = item[0]
    # print(user_id)
    # c = yield cursor.execute("SELECT config from account WHERE user_id=%s" %(user_id,))
    # print(c)

def main():
    loop = asyncio.get_event_loop()
    loop.run_until_complete(account())

if __name__ == '__main__':
    main()

但是错误是RuntimeError: Task got bad yield:, 不知道怎么解决

怪我咯怪我咯2816일 전967

모든 응답(1)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-17 17:56:10

    공식 체인 코루틴 예시는 이렇습니다

    으아악

    @acyncio.coroutine과 동일한 비동기

    분명히 저자의 방법은 체인 코루틴을 달성할 수 없습니다. 왜냐하면 cofunction은 작업을 완료해야 하고 산출물을 얻을 수 없기 때문입니다
    하지만 이렇게 할 수는 있습니다

    으아악

    회신하다
    0
  • 취소회신하다