166 votes

SyntaxError: pas moyen - Quelle est cette erreur ?

J'ai essayé d'exécuter le code suivant sur un IDLE Python

from __future__ import braces 

Et j'ai obtenu l'erreur suivante:

SyntaxError: pas de chance

Que signifie l'erreur ci-dessus?

221voto

Martijn Pieters Points 271458

Vous avez trouvé un œuf de Pâques en Python. C'est une blague.

Cela signifie que la délimitation des blocs par des accolades au lieu de l'indentation ne sera jamais implémentée.

Normalement, les imports du module spécial __future__ permettent d'activer des fonctionnalités incompatibles avec les versions précédentes, telles que la fonction print() ou la division réelle.

Donc, la ligne from __future__ import braces est interprétée comme signifiant que vous souhaitez activer la fonctionnalité 'créer des blocs avec des accolades', et l'exception vous indique que vos chances que cela se produise un jour sont nulles.

Vous pouvez ajouter cela à la longue liste de blagues incluses dans Python, tout comme import __hello__, import this et import antigravity. Les développeurs Python ont un humour bien développé !

25 votes

Pour les personnes perplexes par "no a chance", qui est de l'argot, cela signifie qu'il n'y a aucune possibilité ou probabilité que la chose se produise.

0 votes

Je me demande s'il serait théoriquement possible de mettre en œuvre cela - en tant qu'extension - en Python. (Je ne suis pas un développeur Python)

1 votes

38voto

zhangyangyu Points 8282

Le module __future__ est normalement utilisé pour fournir des fonctionnalités des futures versions de Python.

Ceci est un easter egg qui résume les sentiments de ses développeurs sur cette question.

Il y en a plusieurs autres:

import this affichera la sagesse de Python.

import __hello__ affichera Hello World....

En Python 2.7 et 3.0, import antigravity ouvrira le navigateur vers une bande dessinée!

2voto

Gugalcrom123 Points 1

Cela signifie qu'écrire du code Python comme :

def hello() {
    print("Hello");
    print("World");
}

au lieu de

def hello():
    print("Hello")
    print("World")

ne se produira jamais. L'un est à la fois plus rapide à taper et plus facile à comprendre. Pouvez-vous dire lequel ?

Oh, et quelqu'un a fait cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X