python - 使用文件参数抑制python3中的打印输出
问题描述
我有几个要设置详细级别的函数。目前,我正在这样处理它:
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 日志记录模块不会起作用。
解决方案
atexit 模块可能会有所帮助。在您的 Foo 类中编写一个清理函数并通过调用来注册它
atexit.register(function, args)
在程序退出之前调用。
推荐阅读
- rust - Json 是如何工作的
(表单数据没有表单内容类型) - php - MySQLi stmt num_rows 在服务器上返回 0。在 wamp 上工作得很好
- python - 遇到溢出:exp() 乘以 erfc()
- spring - 当会话为空或超时时,如何配置调度程序以重定向到主页
- c# - 如何拥有具有多个类的 WCF 服务?
- angular - 使用 RXJS 和 AsyncPipe 而不是 Observable.subscribe
- ng-zorro-antd - 无法动态加载嵌套表的数据
- ionic-framework - 找到 com.google.android.gms:play-services-identity:11.8.0,但 google-services 插件需要 10.+ 版本。在离子
- android - 我在 android 中的模型需要是单例吗?
- java - 如何通过@GetMapping 正确访问 URL?