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

270
Vistas
¿Qué son las "palabras clave blandas"?

Según la documentación del módulo de keyword , se han agregado dos nuevos miembros en Python 3.9:

  • issoftkeyword
  • softkwlist

Sin embargo, su documentación no revela nada sobre su propósito. Este cambio ni siquiera se menciona en el artículo Novedades , donde normalmente se documentan todos los cambios de la API. Profundizar un poco más en el código fuente finalmente conduce a esta solicitud de incorporación de cambios en la que se menciona que "esencialmente se trata de una herramienta interna" y que "todavía no se utilizan palabras clave blandas" . Entonces, ¿cuál es el propósito de las palabras clave blandas de Python?

over 4 years ago · Hanz Gallego
3 Respuestas
Responde la pregunta

0

Breve: las palabras clave blandas aún se pueden usar como nombres de variables o argumentos.

PEP 622 arroja algo de luz (Énfasis mío):

La diferencia entre las palabras clave duras y blandas es que las palabras clave duras siempre son palabras reservadas, incluso en posiciones donde no tienen sentido (por ejemplo, x = clase + 1), mientras que las palabras clave blandas solo obtienen un significado especial en contexto.

[...] Las palabras clave de coincidencia y caso se proponen como palabras clave blandas , de modo que se reconozcan como palabras clave al comienzo de una declaración de coincidencia o bloque de caso respectivamente, pero se permite su uso en otros lugares como nombres de variables o argumentos .

over 4 years ago · Hanz Gallego Denunciar

0

Las palabras clave blandas son palabras clave que son sensibles al contexto. Por ejemplo, le permitiría usar class como nombre de variable siempre que no se pueda interpretar como una definición de clase. Permitiría usar para reemplazar cls con class por ejemplo.

Hoy eso no es posible, ya que class es una palabra clave:

 >>> def a(class): File "<stdin>", line 1 def a(class): ^

Dado el contexto, está claro que el usuario no tenía la intención de definir una nueva clase, sino que quería un identificador llamado class .

over 4 years ago · Hanz Gallego Denunciar

0

Creo que esto se explica mejor con una demostración. async y await eran palabras clave blandas en Python 3.5 y 3.6 y, por lo tanto, podían usarse como identificadores:

 >>> async = "spam" >>> async def foo(): ... pass ... >>> await = "bar" >>> async, await ('spam', 'bar')

Pero en Python 3.7 se convirtieron en palabras clave adecuadas y solo se pueden usar en contextos específicos donde tienen sentido:

 >>> async = "123" File "<stdin>", line 1 async = "123" ^ SyntaxError: invalid syntax >>> async def foo(): ... pass ... >>> await = "bar" File "<stdin>", line 1 await = "bar" ^ SyntaxError: invalid syntax >>> async, await File "<stdin>", line 1 async, await ^ SyntaxError: invalid syntax

La idea de presentarlas por primera vez como palabras clave blandas fue principalmente no romper ningún código existente que las use como identificadores. El mismo razonamiento es con la próxima palabra clave de match que rompería por completo, por ejemplo re.match y millones de proyectos.

over 4 years ago · Hanz Gallego 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