future_builtins
future_builtins - Python 3 buildins
2.6版本中的新功能。
该模块提供了2.x中存在的函数,但在Python 3中具有不同的行为,因此它们不能放入2.x内置命名空间。
相反,如果你想编写与Python 3 builtins兼容的代码,可以从这个模块中导入它们,如下所示:
from future_builtins import map, filter
... code using Python 3-style map and filter ...
将Python 2代码移植到Python 3 的2to3工具将认识到这种用法并将新内置程序单独保留。
注意
Python 3 print()
函数已经包含在内建函数中,但除非您使用适当的未来语句,否则无法从Python 2代码访问:
from __future__ import print_function
可用的builtins有:
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 __(),它将在其参数中使用__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()
。