STINNER Victor <victor.stin...@gmail.com> added the comment:

> Don't make KeysView.__repr__ and ValuesView.__repr__ containing the lists of 
> all keys and values. This will make the repr of the view of a mapping which 
> is a proxy of an external DB containing the full content of that DB, which 
> can be gigabytes. See for example rejected issue21670.

The current implementation displays repr(self._mapping):

class MappingView(Sized):
    ...
    def __repr__(self):
        return '{0.__class__.__name__}({0._mapping!r})'.format(self)

For your proxy example: what is the proxy? The KeysView subtype, or the mapping?

repr(list), repr(dict) and repr(set) all render their full content in the 
result, no?

repr() on a list of 1 million of items *will* render all items, even if nobody 
wants to read such very long string :-)

If you want to get a smarter __repr__() than the default implementation: just 
override __repr__(), no?

I don't see why KeysView must be special.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32300>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to