Błąd składni: nie ma szans

123

Próbowałem wykonać następujący kod w Pythonie IDLE

from __future__ import braces 

Otrzymałem następujący błąd:

SyntaxError: not a chance

Co oznacza powyższy błąd?

Anurag-Sharma
źródło

Odpowiedzi:

169

Znalazłeś jajko wielkanocne w Pythonie. To żart.

Oznacza to, że ograniczanie bloków nawiasami klamrowymi zamiast wcięć nigdy nie zostanie zaimplementowane.

Zwykle importy ze specjalnego __future__modułu włączają funkcje, które są niekompatybilne wstecz, takie jakprint() funkcja lub prawdziwy podział.

Tak więc linia from __future__ import bracesoznacza, że ​​chcesz włączyć funkcję „twórz bloki z nawiasami klamrowymi”, a wyjątek mówi, że Twoje szanse na to, że kiedykolwiek się to zdarzy, są zerowe.

Można dodać, że do długiej listy In-żartów zawartych w Pythonie, podobnie jak import __hello__, import thisi import antigravity. Programiści Pythona mają dobrze rozwinięte poczucie humoru!

Martijn Pieters
źródło
10
Dla ludzi zdziwionych „brak szansy”, które jest slangiem, oznacza to, że nie ma możliwości ani prawdopodobieństwa, że ​​coś się wydarzy.
DOK
Zadaję sobie pytanie, czy teoretycznie byłoby możliwe zaimplementowanie tego - jako rozszerzenia - w Pythonie. (Nie jestem programistą Pythona)
hek2mgl
2
@chepner Less Whitespace, More Enterprise: D Dzięki!
hek2mgl
2
@dumbledad: Haskell, CoffeeScript, Miranda, Occam i F # używają białych znaków w składni. Uwaga: ten wątek komentarzy wymyka się spod kontroli; proszę dołącz do pokoju rozmów Python, jeśli chcesz dyskutować dalej.
Martijn Pieters
29

__future__Moduł jest zwykle używany w celu zapewnienia możliwości przyszłych wersjach z Pythona.

To jest pisanka podsumowująca odczucia twórców w tej kwestii.

Jest jeszcze kilka:

import this wyświetli zen języka Python.

import __hello__wyświetli się Hello World....

W Pythonie 2.7 i 3.0 import antigravityotworzy przeglądarkę do komiksu!

zhangyangyu
źródło