您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python:将sys.stdout打印更改为自定义打印功能

python:将sys.stdout打印更改为自定义打印功能

这不是递归。发生的情况是您的write函数调用了两次,一次调用了您期望的文本,第二次调用了just '\n'。尝试这个:

import sys
class CustomPrint():
    def __init__(self):
        self.old_stdout=sys.stdout

    def write(self, text):
        text = text.rstrip()
        if len(text) == 0: return
        self.old_stdout.write('custom Print--->' + text + '\n')

在上面的代码中,我所做的是将新行字符添加到第一次调用中传递的文本中,并确保由print语句进行的第二次调用(用于打印新行)不会打印任何内容

现在尝试注释掉前两行,看看会发生什么:

    def write(self, text):
        #text = text.rstrip()
        #if len(text) == 0: return
        self.old_stdout.write('custom Print--->' + text + '\n')
python 2022/1/1 18:36:45 有301人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶