1 前言
之前在使用cocoapi的时候,有很多函数内部的输出,希望能够屏蔽一下,这样输出的信息比较简单;
2 HiddenPrints类——屏蔽函数内部print输出
class HiddenPrints:
def __init__(self, activated=True):
# activated参数表示当前修饰类是否被激活
self.activated = activated
self.original_stdout = None
def open(self):
sys.stdout.close()
sys.stdout = self.original_stdout
def close(self):
self.original_stdout = sys.stdout
sys.stdout = open(os.devnull, 'w')
# 这里的os.devnull实际上就是Linux系统中的“/dev/null”
# /dev/null会使得发送到此目标的所有数据无效化,就像“被删除”一样
# 这里使用/dev/null对sys.stdout输出流进行重定向
def __enter__(self):
if self.activated:
self.close()
def __exit__(self, exc_type, exc_val, exc_tb):
if self.activated:
self.open()