170 похожих чатов

Тишка, ты вот говоришь, что низкоуровневое апи не стоит использовать

(жонглирование лупами, например) - уже в асинкио есть интерфейс, который позволяет абстрагироваться от этого?

17 ответов

8 просмотров

От чего?

Slam!- Автор вопроса

От лупов

Что ты понимаешь под абстрагированием от лупов?

Slam!- Автор вопроса

Начальный уровень разработки асинхронного кода, в рамках которого о лупах думать не приходится. Дёрнул что-то, всё запустилось и работает отлично

Лупами не стоит жонглировать, потому что это создает кучу проблем, потому что куча объектов в асинкайо привязывается (и к тому же незметно) к оперделенному лупу. Тем более, что такое жонглирование не дает никакого выигрыша в чем либо. Не понимаю, причем тут абстрагирвоание от лупов

Slam!- Автор вопроса

Да, полностью согласен, но как бы ты запускал асинхронный энтрипоинт своего приложения?

А зачем о них думать? Сейчас луп даже не нужно никуда прокидывать. Если он у тебя один в рамках работы программы, то и думать о их совместной работе не нужно

asyncio.run()

Slam!- Автор вопроса

Хорошо. Мне нужно вместе с запуском энтрипоинта запустить две корутины, которые хотел бы прокинуть не в рамках того модуля, где собираюсь запускать энтрипоинт. Как это сделать?

Что значит "прокинуть"?

Slam!- Автор вопроса

Условно говоря, зарегистрировать к выполнению, как это делает create_task

Ну, ты можешь передать список корутин (не асинхронных функций, а корутин) в энтипоинт. Но логичнее всего, когда начинаются какие-то работы с асинхронным кодом, делать это все уже в запущенном лупе. То есть у тебя запускается главная функция, она создает таски, потом переходит в энтрипоинт

Slam!- Автор вопроса

А как таски создать?)

Как обычно

Slam!- Автор вопроса

Если честно, не знаю. Можно пример?

import asyncio async def task1(): pass async def task2(): pass async def entry_point(): pass async def main(): asyncio.create_task(task1()) asyncio.create_task(task2()) await entry_point() if __name__ == '__main__': asyncio.run(main())

Slam!- Автор вопроса

Ух ты. Я два года назад начинал с асинком работать на 3.6 питоне, поэтому приходилось руками доставать текущий луп и класть туда корутины одноименным методом, а ensure_future как-то пролетела мимо глаз. Вопрос про абстрагирование от лупов у меня закрыт. Спасибо)

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
я имею в виду официально интегрированный в телегу? в том плане что не сливает переписку с пользователем?
Andrey
9
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта