Erro de sintaxe: não é uma chance


123

Eu tentei executar o seguinte código no python IDLE

from __future__ import braces 

E recebi o seguinte erro:

SyntaxError: not a chance

O que significa o erro acima?

Respostas:


169

Você encontrou um ovo de páscoa em Python. É uma brincadeira.

Isso significa que a delimitação de blocos por colchetes em vez de indentação nunca será implementada.

Normalmente , as importações do módulo especial__future__ habilitam recursos incompatíveis com versões anteriores, como a print()função ou a divisão verdadeira.

Assim, a linha from __future__ import bracesé tomado para significar que você deseja ativar 'Criar blocos com chaves' característica, ea exceção diz-lhe as suas chances de que nunca acontecer são nulas.

Você pode adicionar isso à longa lista de piadas internas incluída no Python, assim como import __hello__, import thise import antigravity. Os desenvolvedores Python têm um senso de humor bem desenvolvido!


10
Para quem fica intrigado com "não é um acaso", que é uma gíria, significa que não há possibilidade ou probabilidade de a coisa acontecer.
DOK

Eu me pergunto se seria teoricamente possível implementar isso - como uma extensão - em python. (Não sou um desenvolvedor de python)
hek2mgl


2
@chepner Less Whitespace, More Enterprise: D Obrigado!
hek2mgl

2
@dumbledad: Haskell, CoffeeScript, Miranda, Occam e F # usam espaços em branco na sintaxe. Nota: este tópico de comentários está ficando fora de controle; por favor entre na sala de chat do Python se quiser discutir mais.
Martijn Pieters

29

O __future__módulo é normalmente usado para fornecer recursos de versões futuras do Python.

Este é um ovo de Páscoa que resume os sentimentos de seus desenvolvedores sobre este assunto.

Existem vários mais:

import this irá exibir o zen do Python.

import __hello__será exibido Hello World....

No Python 2.7 e 3.0, import antigravityvai abrir o navegador para uma história em quadrinhos!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.