Отдельно разберём TaskGroup, который пришел на замену gather в Python 3.11.
Ключевые отличия
▫️create_task() возвращает объект asyncio.Task, у которого есть соответствюущие методы управления. То есть у нас больше контроля
▫️это контекстный менеджер, который гарантирует что все таски будут остановлены по выходу из контекста
▫️ошибка автоматически отменяет незавершенные задачи,
▫️except* передает нам ExceptionGroup, в котором каждую ошибку можно обработать отдельно
import asyncio
import random
async def do_it() -> str:
if random.random() < 0.1:
raise ValueError('Oops')
delay = random.uniform(0.5, 1.5)
await asyncio.sleep(delay)
return delay
async def main():
try:
async with asyncio.TaskGroup() as tg:
for _ in range(10):
tasks.append(tg.create_task(do_it()))
for t in tasks:
print(t.result())
except *ValueError as e:
for err in e.exceptions:
print(err)
asyncio.run(main())
Рекомендую изучить страницу Coroutines and Tasks из документации, где представлено больше интересных примеров и механизмов
- таймауты
- отмена задач
- создание задач из другого потока
#async
ততততততততততততততততততততততততত
[🎀] Esperamos que esta segunda parte del reto haya sido de su agrado. Muchas gracias a todos los participantes por su esfuerzo.
[🎀] Felicitaciones especiales a:
☆ @Haruki_Lia (respuesta correcta más completa).
☆ @MeryLial (respuesta correcta).
[🎀] El premio como se prometió, será divido entre nuestras ganadoras.
[ 🎀 ] @Apuntes_digitales
[ 🎀 ] #dinámicas#premio
ততততততততততততততততততততততততত
ততততততততততততততততততততততততত
[ 🎀 ] Llegamos al nivel dos del juego. Con una parada diferente esta vez. Si pasan el acertijo se estarán publicando en el canal moodboards inspo (con distintas estéticas) para su 2025.
[ 🎀 ] El ganador obtendrá varias carpetas de recursos png para editar sus apuntes, planners y horarios escolares. Gracias a los seguidores por su apoyo. ¡Ánimo!
୧🌷⿻ Acertijo: ¿Por qué un cuervo es como un escritorio?
୧🌷⿻ Pista: imagen de la publicación (es una referencia a dónde pueden encontrar la respuesta).
[ 🎀 ] @Apuntes_digitales
[ 🎀 ] #dinámicas#pista
ততততততততততততততততততততততততত
ততততততততততততততততততততততততত
[🎀] Esperamos que esta primera parte del reto haya sido de su agrado. Muchas gracias a todos los participantes por su esfuerzo.
[🎀] Felicitaciones especiales a:
☆ @TenshiNoHaibane (por lograr resolver la forma más acertada del acertijo: 2 lados).
☆ @Lilianaord (0 lados).
☆ @Haruki_Lia (3 lados).
☆ @MeryLial (3 lados).
☆ @Hamster_13_2007 (3 lados) (post de organización).
[🎀] El premio como se prometió, será divido entre nuestras ganadoras.
[ 🎀 ] @Apuntes_digitales
[ 🎀 ] #dinámicas#premio
ততততততততততততততততততততততততত
ততততততততততততততততততততততততত
[ 🎀 ] Iniciamos la dinámica con una adivinanza (no matemática). Quien la responda correctamente obtendrá una serie de guías para aprender lettering profesional.
[ 🎀 ] Como extra, el primero en descubrir de qué se tratará el próximo post obtendrá 3 libros de dicha serie. Pista: estará en forma multimedia, de estética rosa/beige y con tips para ordenar... algo. ¿Qué será?
[ 🎀 ] Gracias a los seguidores por su apoyo. ¡Que empiece el juego!
୧🌷⿻ Acertijo: Si "sí" es "no" y "una vez" es "jamás". ¿Cuántos lados tiene un triángulo?
[ 🎀 ] @Apuntes_digitales
[ 🎀 ] #dinámicas#pista
ততততততততততততততততততততততততত
ততততততততততততততততততততততততত
୧🌷⿻ Acertijo: Si "sí" es "no" y "una vez" es "jamás". ¿Cuántos lados tiene un triángulo?
୧🌷⿻ Respuesta: Todas son válidas por igual. Esta es una adivinanza que provee libertad lógica y creativa en sí. A pesar de ello se consideran más aceptadas las que respaldan que tenga 2 lados. ¿Por qué? Pues bien, "una vez" debe ser entendido como un número para relacionarlo al triángulo, o sea el 1. Si 1=0 ("jamás"), el triángulo queda con un lado anulado y dos restantes. ¿Un triángulo tiene dos lados? "No" que transformamos en "sí", como plantea el acertijo para así resolverlo.
[ 🎀 ] @Apuntes_digitales
[ 🎀 ] #dinámicas#respuesta
ততততততততততততততততততততততততত