[Python-ideas] Have REPL print less by default

Ben Finney ben+python at benfinney.id.au
Sun Apr 17 21:42:57 EDT 2016


"Franklin? Lee"
<leewangzhong+python at gmail.com> writes:

> 1. Limit the output per entered command: If you type into the REPL (AKA
> interactive shell),
>
>     list(range(n))
>
> and you forgot that you set n to 10**10, the interpreter should not
> print more than a page of output.

For that specific example, when I run it, the output is quite short:

    $ python3

    >>> n = 10**10
    >>> list(range(n))
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    MemoryError

I take the point though: some objects have a very long ‘repr’ output.

> Instead, it will print a few lines ("... and approximately X more
> lines"), and tell you how to print more. (E.g. "Call '_more()' for
> more. Call '_full()' for full output.")

Perhaps you want a different “print the interactive-REPL-safe text
representation of this object” function, and to have the interactive
REPL use that new function to represent objects.

-- 
 \      “I am too firm in my consciousness of the marvelous to be ever |
  `\       fascinated by the mere supernatural …” —Joseph Conrad, _The |
_o__)                                                     Shadow-Line_ |
Ben Finney



More information about the Python-ideas mailing list