告诉我,真的有可能以采用任意键参数的方式覆盖内置打印吗?
print("test.", color=Fore.GREEN)
我想以这种方式将彩色文本输出到终端并并行记录所有内容,但没有 ANSI 转义字符。
class Logger(object):
def __init__(self):
self.terminal = sys.stdout
now = datetime.today().strftime('%m_%d_%Y-%I_%M_%S_%p')
self.log = open("log_for_" + now + ".log", "a", encoding="utf-8")
def write(self, message, color=""):
self.terminal.write(color + message)
self.log.write(message)
def flush(self):
pass
或者如何很好地解决类似的问题?
当然,您可以覆盖该函数
print
,但我建议您考虑另一种方法,这是一种相当糟糕的做法。如果还是决定重写,那么下面的例子,我们在类外声明函数
UPD:正如评论者@Danis 所指出的,如果您想在任何情况下保留标准输出,那么您可以简化代码