PEP 217 – 交互式使用显示钩子
- 作者:
- Moshe Zadka <moshez at zadka.site.co.il>
- 状态:
- 最终
- 类型:
- 标准轨道
- 创建:
- 2000-07-31
- Python 版本:
- 2.1
- 后期历史:
摘要
Python 的交互模式是实现的重要优势之一——能够在命令行上编写表达式并获得有意义的输出。但是,输出函数不能满足所有人的所有需求,并且当前的输出函数往往达不到这个目标。本 PEP 描述了一种在 Python 中提供对内置显示函数的替代方案的方法,以便用户可以控制交互式解释器输出的内容。
接口
当前的 Python 解决方案已经适用于许多用户,因此不应该破坏它。因此,在默认配置中,REPL 循环不会有任何变化。要更改解释器打印交互式输入表达式的格式,用户需要将 sys.displayhook
重新绑定到一个可调用对象。调用该对象,并将交互式输入表达式的结果作为参数传递给它,返回值应该可以打印,这就是将在 sys.stdout
上打印的内容。
解决方案
字节码 PRINT_EXPR
将调用 sys.displayhook(POP())
。一个 displayhook()
将被添加到 sys 内置模块,它等效于
import __builtin__
def displayhook(o):
if o is None:
return
__builtin__._ = None
print `o`
__builtin__._ = o
Jython 问题
方法 Py.printResult
将进行类似的更改。
来源: https://github.com/python/peps/blob/main/peps/pep-0217.rst
上次修改: 2023-09-09 17:39:29 GMT