Junior — Middle
Python-да асинхрондылық 3.6 нұсқасынан бұрын, async def құрылымының пайда болуынан бұрын қалай жүзеге асырылды?
sobes.tech AI
AI-дан жауап
Python 3.5-тен бастап async def құрылымы енгізілгенге дейін және 3.6-нұсқадағы жетілдірулерге дейін, асинхронды бағдарламалау asyncio модулі арқылы жүзеге асырылды, ол генераторларға негізделген корутиндерді пайдаланды. async def орнына yield from кілтсөзімен генераторлар қолданылды, олар орындалуды тоқтатып, қайта жалғастыру үшін.
Негізгі ұпайлар:
- Корутиндер әдеттегі генераторлар ретінде
yieldнемесеyield fromарқылы жарияланды. - Оқиғалар циклін іске қосу үшін
asyncio.get_event_loop()жәнеrun_until_complete()сияқты әдістер қолданылды. - Асинхронды күтуді жүзеге асыру үшін
awaitорнынаyield fromқолданылды.
async/await қолданылмай тұрып корутиннің мысалы:
import asyncio
def hello():
print('Hello')
yield from asyncio.sleep(1)
print('World')
loop = asyncio.get_event_loop()
loop.run_until_complete(hello())
loop.close()
Қазіргі нұсқаларда код оқылуы оңайырақ болды, себебі async def және await енгізілді.