Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

381
Vistas
¿Por qué no es posible usar "await" en f-strings?

¿Por qué no es posible usar "await" en f-strings? ¿Hay alguna forma de obligar a f-strings a evaluar las expresiones de formato en el contexto de una función de rutina?

 $ python3 Python 3.6.0 (default, Mar 4 2017, 12:32:37) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> async def a(): return 1 ... >>> async def b(): return 'The return value of await a() is {}.'.format(await a()) ... >>> async def c(): return f'The return value of await a() is {await a()}' ... File "<fstring>", line 1 (await a()) ^ SyntaxError: invalid syntax
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

A partir de Python 3.6 , esto no es posible . Será posible en 3.7 de acuerdo con los mensajes del problema 28942: espere expresiones en f-strings en el rastreador de errores de Python.

En cuanto a la razón, el autor del PEP que introdujo las expresiones async / await , Yury Selivanov, dijo lo siguiente:

Sospecho que la razón es que async / await no son palabras clave adecuadas en 3.5/3.6, y los trucos que tenemos en tokenizer para reconocerlos no funcionan en f-strings.

Me asignaré este problema para asegurarme de que se resuelva en 3.7 una vez que hagamos palabras clave async / await .

y, de hecho, el tokenizador parece tratarlos de manera especial .

Tenía razón al estar desconcertado por esto, ya que las cadenas formateadas están documentadas como compatibles con todas las expresiones válidas de Python (con las limitaciones apropiadas que implican esas expresiones, es decir, await en una función de async def ).

No creo que haya ninguna forma de eludir esto en este momento. Deberá seguir con la ruta .format hasta que se resuelva el problema.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda