Reputation: 4418
I tried to execute the following code on a Python IDLE
from __future__ import braces
And I got the following error:
SyntaxError: not a chance
What does the above error mean?
Upvotes: 177
Views: 50587
Reputation: 323
It means that writing Python code like:
def hello() {
print("Hello");
print("World");
}
instead of
def hello():
print("Hello")
print("World")
will never happen. One is both faster to type and easier to understand. Can you tell which one?
Oh, and someone made this.
Upvotes: 2
Reputation: 8620
The __future__
module is normally used to provide features from future versions of Python.
This is an easter egg that summarizes its developers' feelings on this issue.
There are several more:
import this
will display the zen of Python.
import __hello__
will display Hello World...
.
In Python 2.7 and 3.0, import antigravity
will open the browser to a comic!
Upvotes: 41
Reputation: 1124378
You have found an easter egg in Python. It is a joke.
It means that delimiting blocks by braces instead of indentation will never be implemented.
Normally, imports from the special __future__
module enable features that are backwards-incompatible, such as the print()
function, or true division.
So the line from __future__ import braces
is taken to mean you want to enable the 'create blocks with braces' feature, and the exception tells you your chances of that ever happening are nil.
You can add that to the long list of in-jokes included in Python, just like import __hello__
, import this
and import antigravity
. The Python developers have a well-developed sense of humour!
Upvotes: 239