【发布时间】:2018-06-09 10:12:52
【问题描述】:
假设我有一个打印五行文本的函数。我想为它在控制台上打印的每一行添加像“asdf”这样的前缀和后缀“qwerty”。如何在 python 中使用装饰器来做到这一点。生成的输出可以来自日志模块或我们要装饰的函数中的打印语句。
【问题讨论】:
-
如果你学习了一个好的装饰器教程,甚至是从 python 文档本身,这个问题会凭直觉告诉你
-
如果你知道如何实现一个装饰器,为了解决你的问题,你可以找到here。
-
我可能会替换 stdout 的
write方法,而不是用 StringIO 替换整个 stdout 流。你可以,它会正常工作,但你会延迟看到 any 输出,直到函数全部完成。另一方面,替换write可以让您在包装函数发出输出时立即看到输出。
标签: python