skip to navigation
skip to content

Python Wiki

Python Insider Blog

Python 2 or 3?

Help Fund Python

[Python resources in languages other than English]

Non-English Resources

Add an event to this calendar.

Times are shown in UTC/GMT.

Add an event to this calendar.

PEP: 217
Title: Display Hook for Interactive Use
Version: 4b58ffa960aa
Last-Modified:  2007-06-28 00:04:45 +0000 (Thu, 28 Jun 2007)
Author: Moshe Zadka <moshez at zadka.site.co.il>
Status: Final
Type: Standards Track
Created: 31-Jul-2000
Python-Version: 2.1
Post-History: 

Abstract

    Python's interactive mode is one of the implementation's great
    strengths -- being able to write expressions on the command line
    and get back a meaningful output.  However, the output function
    cannot be all things to all people, and the current output
    function too often falls short of this goal.  This PEP describes a
    way to provides alternatives to the built-in display function in
    Python, so users will have control over the output from the
    interactive interpreter.

Interface

    The current Python solution has worked for many users, and this
    should not break it. Therefore, in the default configuration,
    nothing will change in the REPL loop. To change the way the
    interpreter prints interactively entered expressions, users
    will have to rebind sys.displayhook to a callable object.
    The result of calling this object with the result of the
    interactively entered expression should be print-able,
    and this is what will be printed on sys.stdout.

Solution

    The bytecode PRINT_EXPR will call sys.displayhook(POP())
    A displayhook() will be added to the sys builtin module, which is
    equivalent to

    import __builtin__
    def displayhook(o):
        if o is None:
            return
        __builtin__._ = None
        print `o`
        __builtin__._ = o
        

Jython Issues

    The method Py.printResult will be similarily changed.