28.4. future_builtins — Python 3 内置函数 — Python 文档

来自菜鸟教程
Python/docs/2.7/library/future builtins
跳转至:导航、​搜索

28.4. future_builtins — Python 3 内置函数

2.6 版中的新功能。


此模块提供 2.x 中存在的函数,但在 Python 3 中具有不同的行为,因此无法将它们放入 2.x 内置命名空间中。

相反,如果您想编写与 Python 3 内置函数兼容的代码,请从此模块导入它们,如下所示:

from future_builtins import map, filter

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

将 Python 2 代码移植到 Python 3 的 2to3 工具将识别这种用法,并保留新的内置函数。

笔记

Python 3 print() 函数已经在内置函数中,但不能从 Python 2 代码访问,除非您使用适当的 future 语句:

from __future__ import print_function

可用的内置函数有:

future_builtins.ascii(object)
返回与 repr() 相同。 在 Python 3 中, repr() 将返回未转义的可打印 Unicode 字符,而 ascii() 将始终反斜杠转义它们。 在 2.6 代码中使用 future_builtins.ascii() 而不是 repr() 清楚地表明您需要一个纯 ASCII 返回值。
future_builtins.filter(function, iterable)
itertools.ifilter() 一样工作。
future_builtins.hex(object)
像内置的 hex() 一样工作,但不是 __hex__(),它会在其参数上使用 __index__() 方法来获取一个整数,然后将其转换为十六进制。
future_builtins.map(function, iterable, ...)

itertools.imap() 一样工作。

笔记

在 Python 3 中,map() 不接受 None 作为函数参数。

future_builtins.oct(object)
像内置的 oct() 一样工作,但不是 __oct__(),它会在其参数上使用 __index__() 方法来获取一个整数,然后将其转换为八进制。
future_builtins.zip(*iterables)
itertools.izip() 一样工作。