28.4. future_builtins --- Python 3 のビルトイン

バージョン 2.6 で追加.

このモジュールは、 Python 2.x に存在するけれども、 Python 3 では異なった動作をするために、 Python 2.x のビルトイン名前空間に追加できない関数を提供します。

代わりに、 Python 3 のビルトイン関数と互換性のあるコードを書きたい場合は、次のように、このモジュールからその関数を import してください。

from future_builtins import map, filter

... code using Python 3-style map and filter ...

Python 2 のコードを Python 3 用に変換する 2to3 ツールは、この利用方法を検出し、新しいビルトイン関数をそのまま利用します。

注釈

Python 3 の print() 関数は、既にビルトイン関数の中にいます。しかし、 future 文で指定しない限り、利用することができません

from __future__ import print_function

利用できるビルトイン関数は、以下の通りです。

future_builtins.ascii(object)

repr() と同じ値を返します。 Python 3 では、 repr() は表示可能な Unicode 文字をエスケープせずに返し、 ascii() はその文字列をバックスラッシュでエスケープします。 future_builtins.ascii()repr() の代わりに利用することで、 ASCII 文字列を必要としていることを明示できます。

future_builtins.filter(function, iterable)

itertools.ifilter() と同じように動作します。

future_builtins.hex(object)

ビルトイン hex() と同じように動作しますが、 __hex__() の代わりに、 __index__() メソッドを利用して整数を取得し、それを 16 進数文字列に変換します。

future_builtins.map(function, iterable, ...)

itertools.imap() と同じように動作します。

注釈

Python 3 では、 map()None を引数として許容しません。

future_builtins.oct(object)

ビルトイン oct() と同じように動作しますが、 __oct__() の代わりに、 __index__() メソッドを利用して整数を取得し、それを 16 進数文字列に変換します。

future_builtins.zip(*iterables)

itertools.izip() と同じように動作します。