如何用print语句告诉程序“不输出”?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

我目前正在学习Python,并开始了一个项目,为2000-2005年MLB摊牌纸牌游戏创建一个棒球SIM。这些程序将棒球比赛的事件作为打印语句包含在单独的代码段中(“Jeff击打单个”,“Bobby打飞球以退出”,等等)。如果我想同时运行很多游戏的话,我经常会取出输出语句。出于可行性考虑,我的目标是告诉Python不要打印某些语句(例如,在特定的行中),尽管代码中写着“print”。这个是可能的吗?

例子:

while numberofgames < 1000:
  [do not print any statements here]
  ---baseball games---
end of while loop

然后:输出仿真结果。

提问于
用户回答回答于

你能否创建一个全局变量,你可以检查以决定要打印多少?通过这样做,你可以根据需要控制日志记录的数量。

  if printLevel > 3:
      print("Bobby hits a fly ball for an out")
用户回答回答于

Python的print产出sys.stdout。你可以为STDOUT设置自己的缓冲区。

# assuming python3
import sys
import io

my_buffer = io.StringIO()
sys.stdout = my_buffer

# print some stuff
stuff_to_print = ['foo', 'word', 'test']
for word in stuff_to_print:
    print(word)

# all the other stuff your script does

# change stdout back to original so print is pointing back to original buffer
sys.stdout = sys.__stdout__

# now print everything out at once
print(my_buffer.get_value())

扫码关注云+社区

领取腾讯云代金券