有没有办法直接“装饰”一段Python代码?

2024-04-26 03:09:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆代码:

statement1(args)
statement2(args)
statement3(args)
statement4(args)
statement5(args)

我想把语句分成块,并在每个块之后写入日志。日志记录有点复杂:我想记录每个块的运行时间和块执行后特定数据结构的状态。所以我创建了一个名为log_block的装饰器,它处理所有这些细节。现在我的代码如下:

^{pr2}$

这个很好用,但有点笨重。很烦人的是,我必须分别调用三个块函数,如果我想在块之间共享一个变量,那么我要么必须给块函数提供参数和返回语句,要么使用全局变量,这两种方法都不是特别好用的。我真正想要的是这样的语法:

@log_block()
    statement1(args)
    statement2(args)

@log_block()
    statement3(args)

@log_block()
    statement4(args)
    statement5(args)

所以我直接修饰语句,而不是将它们封装在辅助块函数中。有什么办法可以达到这样的目的吗?在


Tags: 函数代码log数据结构状态记录时间args