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()
と同じように動作します。