Use Await en Python Lambda
La programación asincrónica no es multihilo ni multiprocesamiento. En cambio, es una programación concurrente en la que podemos ejecutar una tarea potencialmente de larga duración y permitir que nuestro programa responda a otras tareas mientras esa tarea aún se está ejecutando en lugar de esperar a que se complete.
Con la programación asincrónica, las acciones de solicitudes HTTP o la selección de usuarios pueden llevar mucho tiempo y, por lo tanto, sería inteligente permitir que se ejecuten otras tareas mientras se siguen realizando dichas acciones.
En Python, para lograr la programación asíncrona, puede usar las características async/await
con funciones, pero lo hacemos con funciones lambda
. Este artículo discutirá la posibilidad de usar await
en una función lambda de Python.
No hay async/await lambda
en Python Lambda
Para llevar a cabo la programación asincrónica en Python, necesitamos un paquete de alto nivel integrado llamado asyncio
que usa la sintaxis async/await
para permitir la programación concurrente.
Para crear una operación asíncrona, puede utilizar las palabras clave async
y await
.
import asyncio
async def main():
print("Action One")
await asyncio.sleep(1)
print("Action Two")
asyncio.run(main())
Producción :
Action One
Action Two
Aplicamos la palabra clave async
a la función main()
y la palabra clave await
en la instrucción asyncio.sleep()
; sin embargo, ¿cómo lo aplicamos a una función anónima vía lambda
? Las funciones anónimas o lambda
se definen sin nombre y utilizan la palabra clave lambda
para lograrlo.
Digamos que quieres eliminar de tu lista los números que no son divisibles por 3. Podemos usar el método filter()
(una función de orden superior) que toma otra función.
Entonces, en lugar de definir un enlace de función que quizás no vuelva a usar, puede usar una función anónima usando la palabra clave lambda
.
myNums = [1, 2, 3, 4, 5, 6, 7]
myNums = list(filter(lambda x: x % 3 == 0, myNums))
print(myNums)
Producción :
[3, 6]
Sin embargo, ¿hay alguna manera de agregar las capacidades asíncronas a la función lambda
? La respuesta simple es no.
Los desarrolladores de Python han declarado que no hay casos de uso significativos para justificar la adición de la sintaxis async
para lambda
.
Además, la denominación de lambda
no es el uso adecuado de las funciones lambda
; por lo tanto, sería difícil usarlo funcionalmente con funciones lambda
. Además, pasar una función async
a través de una función lambda
se ejecutará dentro de una función síncrona.
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn