自定义sys.stdout后input()提示语显示顺序异常的解决咨询
自定义sys.stdout后input()提示语显示顺序异常的解决咨询
我最近在做一个需求,需要捕获程序运行时的警告消息并存在变量里,于是参考了一种修改sys.stdout的写法,代码如下:
import sys class Logger(object): def __init__(self): self.terminal = sys.stdout self.warnings = [] def write(self, message): self.terminal.write(message) if "WARNING" in message: self.warnings.append(message) def flush(self): pass sys.stdout = Logger() user_input = input("Your input: ") print("Your input is: "+user_input)
但运行的时候发现个奇怪的问题:使用input()函数时,提示语"Your input: "居然是在我输入内容之后才显示出来!也就是说,我得先输入内容,才能看到要输入的提示,这完全反了。
想请教一下各位大佬,有没有办法只对这个Logger类做一点小修改,就能解决这个显示顺序的问题呀?我用的是Python 3.8版本。
备注:内容来源于stack exchange,提问作者Julien
相关产品推荐
相关产品推荐

