Error de sintaxis: no es posible

123

Intenté ejecutar el siguiente código en python IDLE

from __future__ import braces 

Y recibí el siguiente error:

SyntaxError: not a chance

¿Qué significa el error anterior?

Anurag-Sharma
fuente

Respuestas:

169

Has encontrado un huevo de pascua en Python. Es un chiste.

Significa que nunca se implementará la delimitación de bloques mediante llaves en lugar de sangría.

Normalmente , las importaciones desde el módulo especial__future__ habilitan características que son incompatibles con versiones anteriores, comoprint() función o la división verdadera.

Entonces, la línea from __future__ import bracesse considera que significa que desea habilitar la función 'crear bloques con llaves', y la excepción le indica sus posibilidades de hacerlo alguna vez nula ocurra son.

Puede agregar eso a la larga lista de bromas internas incluidas en Python, como import __hello__, import thisy import antigravity. ¡Los desarrolladores de Python tienen un sentido del humor bien desarrollado!

Martijn Pieters
fuente
10
Para la gente desconcertada por "no es una casualidad", que es jerga, significa que no hay posibilidad o probabilidad de que suceda.
DOK
Me pregunto si sería teóricamente posible implementar eso, como una extensión, en Python. (No soy un desarrollador de Python)
hek2mgl
2
@chepner Less Whitespace, More Enterprise: D ¡Gracias!
hek2mgl
2
@dumbledad: Haskell, CoffeeScript, Miranda, Occam y F # usan espacios en blanco en la sintaxis. Nota: este hilo de comentarios se está saliendo de control; por favor únase a la sala de chat de Python si desea discutir más.
Martijn Pieters
29

los __future__ módulo se usa normalmente para proporcionar características de futuras versiones de Python.

Este es un huevo de Pascua que resume los sentimientos de sus desarrolladores sobre este tema.

Hay varios más:

import this mostrará el zen de Python.

import __hello__ mostrará Hello World... .

En Python 2.7 y 3.0, ¡ import antigravityabrirá el navegador a un cómic!

zhangyangyu
fuente