構文エラー:偶然ではない


123

Python IDLEで次のコードを実行してみました

from __future__ import braces 

そして、私は次のエラーを受け取りました:

SyntaxError: not a chance

上記のエラーはどういう意味ですか?

回答:


169

Pythonでイースターエッグを見つけました。冗談だ。

つまり、インデントの代わりに中括弧でブロックを区切ることは実装されません。

通常特別な__future__モジュールからのインポートは、以下のような下位互換性のない機能を有効にしますprint()関数や真の除算。

したがって、この行from __future__ import bracesは、「ブレースを使用してブロックを作成する」機能を有効にすることを意味していると解釈され、例外により、発生する可能性がゼロであることが示されます。

Pythonに含まれるジョークの長いリストにimport __hello__import thisやと同じようにそれを追加できimport antigravityます。Python開発者は、十分に発達したユーモアのセンスを持っています!


10
スラングである「チャンスではない」に戸惑う人々にとって、それは事態が発生する可能性や確率がないことを意味します。
DOK 2013

私はそれを-拡張として-pythonで実装することが理論的に可能かどうかを自問しています。(私はpython開発者ではありません)
hek2mgl

@ hek2mglwriteonly.wordpress.com/2010/04/01/…– chepner '09
09/23

2
@chepner Less Whitespace, More Enterprise:Dありがとう!
hek2mgl 2014

2
@dumbledad:Haskell、CoffeeScript、Miranda、Occam、F#はすべて構文で空白を使用します。注:このコメントスレッドは手に負えなくなってきています。詳細については、Pythonチャットルームに参加してください。
Martijn Pieters

29

__future__モジュールは、通常のPythonの将来のバージョンから機能を提供するために使用されます。

これは、この問題に対する開発者の気持ちをまとめたイースターエッグです。

さらにいくつかあります:

import this Pythonの禅を表示します。

import __hello__ 表示されます Hello World...

Python 2.7および3.0では、 import antigravity、ブラウザでコミックを表示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.