Как вызвать метод объекта, возвращенного из асинхронной c функции без скобок в Python? - PullRequest
0 голосов
/ 15 апреля 2020

Я получил эту функцию:

async def download(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as resp:
            if resp.status == 200:
                return resp

Чтобы получить данные, мне нужно написать:

text = await (await utils.download(url)).text()

Как изменить download, чтобы я мог написать так

text = await utils.download(url).text()

без получения AttributeError: 'coroutine' object has no attribute 'text'?

1 Ответ

0 голосов
/ 15 апреля 2020

Может быть, это может помочь упростить использование:

async def download(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as resp:
            if resp.status == 200:
                return await resp.text()

Затем использовать его:

async def main():
    text = await download("http://python.org")
...