返回顶部
首页 > 资讯 > 后端开发 > Python >Python编程:如何实现类装饰器及应用?要点要掌握
  • 424
分享到

Python编程:如何实现类装饰器及应用?要点要掌握

Python编程装饰器 2023-05-14 21:05:37 424人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

示例python中的装饰器既可以是函数也可以是类。在前几节中,我们使用的是函数装饰器。现在,我们将学习如何定义类装饰器。我们将定义充当装饰器的自定义类。当用类装饰/修饰函数时,该函数就成为该类的实例。让我们来一探究竟:如上所示,我们创建了一

示例

python中的装饰器既可以是函数也可以是类。在前几节中,我们使用的是函数装饰器。现在,我们将学习如何定义类装饰器。

我们将定义充当装饰器的自定义类。当用类装饰/修饰函数时,该函数就成为该类的实例。让我们来一探究竟:

Python编程:如何实现类装饰器及应用?要点要掌握

如上所示,我们创建了一个简单的类装饰器。任何类要成为装饰器,都需要实现__call__()方法。__call__()方法的作用与函数装饰器中的包装器函数相同。

现在让我们用这个类来装饰一个函数:

Python编程:如何实现类装饰器及应用?要点要掌握

运行程序输出结果如下:

Python编程:如何实现类装饰器及应用?要点要掌握

带*args和**kwargs参数的类装饰器

为了让类装饰器使用参数用*args和**kwargs,我们需要使用这些参数来实现__call__()方法,并将其传递给被修饰的函数。通用的表示方法如下:

Python编程:如何实现类装饰器及应用?要点要掌握

上面的代码中,类装饰器的__call__()方法接受*args和**kwargs参数。在代码行中,call方法将它们传递给所装饰的函数:self.func(*args,**kwargs)。

现在我们用这个类装饰器来装饰一个函数:

Python编程:如何实现类装饰器及应用?要点要掌握

类装饰装饰函数

运行程序所输出结果类似如下:

Hello Solo Cui

带return语句的类装饰器

还记得在函数装饰器的wrapper函数中,我们可使用return关键字返回装饰过的函数。我们会在这里做同样的事情,但是在__call__方法里面。

Python编程:如何实现类装饰器及应用?要点要掌握

返回结果的类装饰器

运行程序输出结果如下:

TRACY CUI

如上所示,我们是在__call__方法中将修饰过的函数返回:

return self.func(*args,**args)

至此,关于Python的装饰器就介绍完了。

以上就是Python编程:如何实现类装饰器及应用?要点要掌握的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: Python编程:如何实现类装饰器及应用?要点要掌握

本文链接: https://lsjlt.com/news/205516.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作