gpt4 book ai didi

python - 在 Python 交互式 session 中禁用自动打印

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:32 25 4
gpt4 key购买 nike

我将举办一个 Python 研讨会,教授我大学 Python 的一些初级程序员。

我正在寻找一种方法来修改 Python 交互式 session 的默认行为,以便表达式不会自动打印出结果。例如,采取以下交互式 session :

wil@calcifer:~$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x = 5
>>> y = 7
>>> x + y
12
>>> first_name = "Test"
>>> last_name = "Person"
>>> first_name + last_name
'TestPerson'
>>>

这将强制使用 print 语句以避免以后混淆。这并不重要,但令我惊讶的是我无法在任何地方找到任何设置。

我可以预先配置机器,因此任何解决方案都可以使用。有谁知道这是否可能,或者交互式 session 的哪些更改会产生这种效果?

最佳答案

交互式 session 中的表达式打印是通过调用sys.displayhook。只需将其重写为 NOP:

>>> import sys
>>> sys.displayhook = lambda x: None

>>> 2 + 3
>>> print 2 + 3
5
>>>

在普通 Python session 中,它连接到 sys.stdout。在 GUI 上提供 Python shell 的应用程序被期望使用它来将表达式值打印回给用户。

您可以编写 pythonrc.py(~/.pythonrc.py 文件)默认执行此操作,每次调用解释器时。可以在此处找到有关 sys.displayhook 的更多文档: http://docs.python.org/3/library/sys.html#sys.displayhook

关于python - 在 Python 交互式 session 中禁用自动打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15534880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com