Python Tips: Python のイースターエッグ

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>>> 以上です。

参考