PEP 217 – Display Hook for Interactive Use
- Author:
- Moshe Zadka <moshez at zadka.site.co.il>
- Status:
- Final
- Type:
- Standards Track
- Created:
- 31-Jul-2000
- Python-Version:
- 2.1
- Post-History:
Table of Contents
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 similarly changed.
Source: https://github.com/python/peps/blob/main/peps/pep-0217.rst
Last modified: 2023-09-09 17:39:29 GMT