Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

382
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!