Add entry for reprlib.
This commit is contained in:
parent
e6d4c5bab8
commit
98b140c196
@ -5,6 +5,9 @@
|
|||||||
:synopsis: Alternate repr() implementation with size limits.
|
:synopsis: Alternate repr() implementation with size limits.
|
||||||
.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
|
.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
|
||||||
|
|
||||||
|
**Source code:** :source:`Lib/reprlib.py`
|
||||||
|
|
||||||
|
--------------
|
||||||
|
|
||||||
The :mod:`reprlib` module provides a means for producing object representations
|
The :mod:`reprlib` module provides a means for producing object representations
|
||||||
with limits on the size of the resulting strings. This is used in the Python
|
with limits on the size of the resulting strings. This is used in the Python
|
||||||
|
@ -987,6 +987,32 @@ implemented::
|
|||||||
|
|
||||||
(Patch submitted by Daniel Urban; :issue:`5867`.)
|
(Patch submitted by Daniel Urban; :issue:`5867`.)
|
||||||
|
|
||||||
|
reprlib
|
||||||
|
-------
|
||||||
|
|
||||||
|
When writing a :meth:`__repr__` method for a custom container, it is easy to
|
||||||
|
forget to handle the case where a member refers back to the container itself.
|
||||||
|
Python's builtin objects such as :class:`list` and :class:`set` handle
|
||||||
|
self-reference by displaying "..." in the recursive part of the representation
|
||||||
|
string.
|
||||||
|
|
||||||
|
To help write such :meth:`__repr__` methods, the :mod:`reprlib` module has a new
|
||||||
|
decorator, :func:`reprlib.recursive_repr`, for detecting recursive calls to
|
||||||
|
:meth:`__repr__` and substituting a placeholder string instead:
|
||||||
|
|
||||||
|
>>> class MyList(list):
|
||||||
|
@recursive_repr()
|
||||||
|
def __repr__(self):
|
||||||
|
return '<' + '|'.join(map(repr, self)) + '>'
|
||||||
|
|
||||||
|
>>> m = MyList('abc')
|
||||||
|
>>> m.append(m)
|
||||||
|
>>> m.append('x')
|
||||||
|
>>> print(m)
|
||||||
|
<'a'|'b'|'c'|...|'x'>
|
||||||
|
|
||||||
|
(Contributed by Raymond Hettinger.)
|
||||||
|
|
||||||
contextlib
|
contextlib
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -1697,9 +1723,6 @@ reading directly from dictionaries and strings.
|
|||||||
- non-UTF8 percent encoding of non-ASCII characters
|
- non-UTF8 percent encoding of non-ASCII characters
|
||||||
Issue 2987 for IPv6 (RFC2732) support in urlparse
|
Issue 2987 for IPv6 (RFC2732) support in urlparse
|
||||||
|
|
||||||
.. XXX reprlib.recursive_repr
|
|
||||||
|
|
||||||
|
|
||||||
Multi-threading
|
Multi-threading
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@ def recursive_repr(fillvalue='...'):
|
|||||||
wrapper.__module__ = getattr(user_function, '__module__')
|
wrapper.__module__ = getattr(user_function, '__module__')
|
||||||
wrapper.__doc__ = getattr(user_function, '__doc__')
|
wrapper.__doc__ = getattr(user_function, '__doc__')
|
||||||
wrapper.__name__ = getattr(user_function, '__name__')
|
wrapper.__name__ = getattr(user_function, '__name__')
|
||||||
|
wrapper.__name__ = getattr(user_function, '__annotations__', {})
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
return decorating_function
|
return decorating_function
|
||||||
|
Loading…
x
Reference in New Issue
Block a user