Pythonのイースターエッグについてご紹介します。
・・・の説明の前に、まずは「イースターエッグ」について。イースターエッグとは、開発者の遊び心で作られた隠し機能のことです。Wikipediaのページでは次のように説明されています。
イースター・エッグ(Easter egg)とは、コンピュータのソフトウェア・書籍・CDなどに隠されていて、本来の機能・目的とは無関係であるメッセージや画面の総称である。ユーモアの一種である。 > これらを「イースター・エッグ」と呼ぶのは、キリスト教の復活祭の際に、装飾した卵(イースター・エッグ)をあちこちに隠して子供たちに探させる遊びにちなむ。個人的には、もともとの卵を探す遊びの方を知らないので、イースターエッグといえばこちらのイースターエッグが思い浮かびます。
Pythonにもイースターエッグが存在するようです。以下、いくつか見ていきます(これから知る方にとってネタバレにならないよう、やり方だけ・・・)。
import this
import this
# 以下のとおり表示
# The Zen of Python, by Tim Peters
#
# Beautiful is better than ugly.
# Explicit is better than implicit.
# ...
「import this」とやると、「The Zen of Python」(禅オブPython)がズラズラーっと表示されます。
import hello
import __hello__
import __phello__
プログラマの最初の一歩といえば「Hello world」ですよね。なぜ、「phello」でもHello worldなのかわかりませんが、、「print hello = phello」、でしょうか。
from __future__ import braces
from __future__ import braces
これはPythonのインデント構文にまつわるイースターエッグです。
他の言語でよくある {} ーーいわゆる braces を使ったブロック表現を import します、という意味の import 文。結果は「ありえないっす!」的なニュアンスでしょうか。「インデントによるブロックがこんなにイケてるのに {} なんて導入するわけないじゃん!」的な感じなのかな。
import antigravity
import antigravity
これは、やってみてのお楽しみ。antigravityは「反重力」的な意味です。
love is...
最後に、これはイースターエッグではないのですが、Pythonインタプリタを使ったことば遊びとしてPythonメーリングリスト上で紹介されたそうです。
import this
...
love = this this is love
True
love is True
False
love is False
False
love is not True or False
True
love is not True or False; love is love
True True>>> 以上です。