使用python装饰器进行可选的调试打印

时间:2019-01-02 10:01:54

标签: python decorator

我已经用python编写了一个程序,将其当前处于的每个状态输出。这要归功于docker-log 60 GB的数据过夜。显然我关闭了打印。

但是,在某些测试用例中,我想再次打开它们。我刚刚了解了python装饰器。我可以将函数包装在打印函数中,因为我不想编辑用于打印所有这些状态的函数中的代码。我可以使用函数中的某种调试/测试标志来执行此操作,但装饰器似乎非常优雅。

问题在于,在我的函数之前将@printdecorator封装给所有人,而不仅限于我的测试模块。有没有办法为不同的模块启用或禁用装饰器?这个stackoverflow post就是这样。但是我不太相信这是python的方法。

编辑1:

好吧,我可能不得不添加一些更多的背景信息,为什么python日志记录模块不适合我。打印的状态是游戏动作。每次玩家移动时,都会印制棋盘。我想不时观察球员,看看他们在进步。我不想在游戏模块中编辑make_a_move函数(不再打印每个状态)。我希望有一个包装,我可以不时地在一些测试用例中启用它。

0 个答案:

没有答案