πŸ”₯ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» асинхронно Π² Python ΠΈ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ эффСктивности ΠΈ Π³Π°Ρ€ΠΌΠΎΠ½ΠΈΠΈ? ✨

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» асинхронно Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ async for. Она позволяСт Π²Π°ΠΌ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ асинхронному Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ асинхронныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°.


import asyncio

async def async_iterator():
    for i in range(1, 5):
        await asyncio.sleep(1)
        yield i

async def main():
    async for item in async_iterator():
        print(item)

asyncio.run(main())

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм асинхронный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ async_iterator, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π² 1 сСкунду ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ async for, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ значСниям Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ асинхронныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°.

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ asyncio ΠΈ запустили Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main() с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ asyncio.run().

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ позволяСт Π²Π°ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ асинхронныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° асинхронно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΊΠΎΠ΄ ΠΌΠΎΠ³ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ эффСктивно ΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ основной ΠΏΠΎΡ‚ΠΎΠΊ выполнСния.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Запуск Ρ†ΠΈΠΊΠ»Π° асинхронно Π² Python β€” это ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… возмоТностСй, которая позволяСт эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡŽ Π²Π°ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» асинхронно Π² Python, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ†ΠΈΠΊΠ» событий?

ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ основного ΠΏΠΎΡ‚ΠΎΠΊΠ° выполнСния. Π­Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько Π·Π°Π΄Π°Ρ‡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΈ эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСсурсы. Π¦ΠΈΠΊΠ» событий (Event Loop) β€” это ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ управляСт асинхронными опСрациями Π² Python. Π¦ΠΈΠΊΠ» событий рСгистрируСт события ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠΏΡ€ΠΈ ΠΈΡ… наступлСнии.

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» асинхронно Π² Python?

Для запуска Ρ†ΠΈΠΊΠ»Π° асинхронно Π² Python ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ asyncio. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт Ρ†ΠΈΠΊΠ» асинхронно:


import asyncio

async def my_coroutine():
    # Π’Π΅Π»ΠΎ вашСй асинхронной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    await asyncio.sleep(1)
    print("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!")

loop = asyncio.get_event_loop()
loop.run_until_complete(my_coroutine())

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ объявляСм Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ my_coroutine, которая содСрТит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ асинхронныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ†ΠΈΠΊΠ» событий с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get_event_loop() ΠΈ запускаСм Ρ†ΠΈΠΊΠ» Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ асинхронной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° run_until_complete(). ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ сообщСниС "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!".

АсинхронныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сопрограммы

Π’ асинхронном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ асинхронныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. АсинхронныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, сСтСвыми запросами ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ опСрациями. Π’ Python асинхронными опСрациями ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом async.

Π‘ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (Coroutines) β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ асинхронных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ остановлСны ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Ρ‹ ΠΏΠΎΠ·ΠΆΠ΅. Они ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово await, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ асинхронной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования асинхронного Ρ†ΠΈΠΊΠ»Π°

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования асинхронного Ρ†ΠΈΠΊΠ»Π° Π² Python:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Асинхронный HTTP запрос


import asyncio
import aiohttp

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()

async def main():
    async with aiohttp.ClientSession() as session:
        html = await fetch(session, 'https://www.example.com')
        print(html)

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ aiohttp, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ асинхронный HTTP запрос. ΠœΡ‹ объявляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ fetch, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ await для оТидания ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ сСрвСра ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ URL. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ async with для установки сСанса ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ fetch Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹ main. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запроса выводится Π½Π° экран.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡



import asyncio
import random

async def my_task(id):
    # Π˜ΠΌΠΈΡ‚Π°Ρ†ΠΈΡ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ асинхронной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
    await asyncio.sleep(random.randint(1, 5))
    print(f"Π—Π°Π΄Π°Ρ‡Π° {id} Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°")

async def main():
    tasks = []
    for i in range(5):
        task = asyncio.create_task(my_task(i))
        tasks.append(task)
    await asyncio.gather(*tasks)

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм нСсколько Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. КаТдая Π·Π°Π΄Π°Ρ‡Π° ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ await asyncio.sleep(). ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ asyncio.create_task() для создания Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ добавляСм Π΅Π΅ Π² список Π·Π°Π΄Π°Ρ‡. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ asyncio.gather() для оТидания Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ всСх Π·Π°Π΄Π°Ρ‡ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» асинхронно Π² Python. ΠœΡ‹ использовали ΠΌΠΎΠ΄ΡƒΠ»ΡŒ asyncio ΠΈ асинхронныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ асинхронныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрСли ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования асинхронного Ρ†ΠΈΠΊΠ»Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ асинхронныС HTTP запросы ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡. АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивныС ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, поэтому Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠ½ΠΎΡΡ‚ΡŒ Π² python | Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° asyncio ΠΈ асинхронный ΠΊΠΎΠ΄

ΠžΡΠ½ΠΎΠ²Ρ‹ асинхронности Π² Python #2: ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ с простыми функциями. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠΉΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ».

Асинхронный парсинг Π½Π° Python | УскоряСм ΠΊΠΎΠ΄ Π² 10 Ρ€Π°Π· | requests, asyncio, aiohttp

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ pip python linux?

Как ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ символы Π² Python: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

5 простых шагов для создания сайтов Π½Π° Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»Π΅Π³ΠΊΠΎ понятной инструкции

πŸ”₯ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» асинхронно Π² Python ΠΈ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ эффСктивности ΠΈ Π³Π°Ρ€ΠΌΠΎΠ½ΠΈΠΈ? ✨

ΠΊΠ°ΠΊ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² visual studio code python Π·Π° ΠΏΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚ 🐍

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива Π² Python

Как ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ