Add future_builtins.ascii().

This commit is contained in:
Georg Brandl 2008-06-11 18:55:38 +00:00
parent 35b9020246
commit 89f48876a2
3 changed files with 24 additions and 0 deletions

View File

@ -28,6 +28,14 @@ this usage and leave the new builtins alone.
Available builtins are: Available builtins are:
.. function:: ascii(object)
Returns the same as :func:`repr`. In Python 3, :func:`repr` will return
printable Unicode characters unescaped, while :func:`ascii` will always
backslash-escape them. Using :func:`future_builtins.ascii` instead of
:func:`repr` in 2.6 code makes it clear that you need a pure ASCII return
value.
.. function:: filter(function, iterable) .. function:: filter(function, iterable)
Works like :func:`itertools.ifilter`. Works like :func:`itertools.ifilter`.

View File

@ -12,6 +12,8 @@ What's New in Python 2.6 beta 1?
Core and Builtins Core and Builtins
----------------- -----------------
- Add future_builtins.ascii().
- Several set methods now accept multiple arguments: update(), union(), - Several set methods now accept multiple arguments: update(), union(),
intersection(), intersection_update(), difference(), and difference_update(). intersection(), intersection_update(), difference(), and difference_update().

View File

@ -45,11 +45,25 @@ PyDoc_STRVAR(oct_doc,
Return the octal representation of an integer or long integer."); Return the octal representation of an integer or long integer.");
static PyObject *
builtin_ascii(PyObject *self, PyObject *v)
{
return PyObject_Repr(v);
}
PyDoc_STRVAR(ascii_doc,
"ascii(object) -> string\n\
\n\
Return the same as repr(). In Python 3.x, the repr() result will\n\
contain printable characters unescaped, while the ascii() result\n\
will have such characters backslash-escaped.");
/* List of functions exported by this module */ /* List of functions exported by this module */
static PyMethodDef module_functions[] = { static PyMethodDef module_functions[] = {
{"hex", builtin_hex, METH_O, hex_doc}, {"hex", builtin_hex, METH_O, hex_doc},
{"oct", builtin_oct, METH_O, oct_doc}, {"oct", builtin_oct, METH_O, oct_doc},
{"ascii", builtin_ascii, METH_O, ascii_doc},
{NULL, NULL} /* Sentinel */ {NULL, NULL} /* Sentinel */
}; };