使用文件参数抑制python3中的打印输出

时间:2018-11-21 00:43:27

标签: python

我有几个函数要设置其详细程度。目前,我的处理方式如下:

class Foo:
    def __init__(self, foo_stuff, verbose=True):
        self.print_file = None if verbose else open(os.devnull, 'w')

    def do_stuff(self):
        print('doing stuff', file=self.print_file)

这可行,但是我不喜欢从不关闭文件self.print_file.

为了清洁起见,我不想将每个打印功能都包装在with open(...)中。我想知道是否有人可以建议另一种方法。对于此应用程序,我认为python日志记录模块不起作用。

1 个答案:

答案 0 :(得分:1)

atexit模块可能会有所帮助。在您的Foo类中编写一个清理函数,然后通过调用

进行注册
atexit.register(function, args)

在程序退出之前被调用。