当前位置: 首页 > 科技观察

学习Python装饰器,这篇文章就够了!看完你就知道了

时间:2023-03-15 10:16:45 科技观察

在讲Python装饰器之前,我想先举个例子。虽然有点脏,但是和装饰器的话题很相关。在谈论装饰器之前,您需要了解一件事。Python中的函数不同于Java和C++。Python中的函数可以像普通变量一样作为参数传递给另一个函数。例如:我们看一个简单的例子,虽然实际的代码可能比这个复杂很多:现在有一个新的需求,希望记录下函数的执行日志,所以在代码中加入日志代码:simpledecorator@syntacticsugar*args,**kwargs有人会问,如果我的业务逻辑函数foo需要参数怎么办?例如:我们可以在定义包装函数时指定参数:例如:此时可以为包装函数指定关键字function:带参数@use_logging(level="warn")的装饰器等同于@decorator类decorationfunctools.wraps示例:装饰器的顺序一个函数也可以同时定义多个装饰器,例如: