python中装饰器使用及功能(如何实现类装饰器及应用)
python中装饰器使用及功能(如何实现类装饰器及应用)如上所示,我们创建了一个简单的类装饰器。任何类要成为装饰器,都需要实现__call__()方法。__call__()方法的作用与函数装饰器中的包装器函数相同。我们将定义充当装饰器的自定义类。当用类装饰/修饰函数时,该函数就成为该类的实例。让我们来一探究竟:欢迎各位读者朋友们点赞、转发和收藏,分享出去让更多的Python爱好者更好加以理解。Python装饰器文章封面Python中的装饰器既可以是函数也可以是类。在前几节中,我们使用的是函数装饰器。现在,我们将学习如何定义类装饰器。
前言在Python编程:函数特性与装饰器?
Python编程:装饰器和函数之关系?
Python编程:装饰器之底层逻辑与实现?
Python编程:如何处理带参装饰器和通用装饰器 ?
Python编程:如何控制函数名的变与不变及与创建链式装饰器?
欢迎各位读者朋友们点赞、转发和收藏,分享出去让更多的Python爱好者更好加以理解。
Python装饰器文章封面
示例Python中的装饰器既可以是函数也可以是类。在前几节中,我们使用的是函数装饰器。现在,我们将学习如何定义类装饰器。
我们将定义充当装饰器的自定义类。当用类装饰/修饰函数时,该函数就成为该类的实例。让我们来一探究竟:
如上所示,我们创建了一个简单的类装饰器。任何类要成为装饰器,都需要实现__call__()方法。__call__()方法的作用与函数装饰器中的包装器函数相同。
现在让我们用这个类来装饰一个函数:
运行程序输出结果如下:
为了让类装饰器使用参数用*args和**kwargs 我们需要使用这些参数来实现__call__()方法 并将其传递给被修饰的函数。通用的表示方法如下:
上面的代码中,类装饰器的__call__()方法接受*args和**kwargs参数。在代码行中,call方法将它们传递给所装饰的函数:self.func(*args **kwargs)。
现在我们用这个类装饰器来装饰一个函数:
类装饰装饰函数
运行程序所输出结果类似如下:
Hello Solo Cui
带return语句的类装饰器还记得在函数装饰器的wrapper函数中,我们可使用return关键字返回装饰过的函数。我们会在这里做同样的事情,但是在__call__方法里面。
返回结果的类装饰器
运行程序输出结果如下:
TRACY CUI
如上所示,我们是在__call__方法中将修饰过的函数返回:
return self.func(*args **args)
至此,关于Python的装饰器就介绍完了。
小结关于Python装饰器的完整介绍就全部介绍了,详情请查看如下关联列表:
Python编程:函数特性与装饰器?
Python编程:装饰器和函数之关系?
Python编程:装饰器之底层逻辑与实现?
Python编程:如何处理带参装饰器和通用装饰器 ?
Python编程:如何控制函数名的变与不变及与创建链式装饰器?
并请各位朋友积极转发和分享出去,点个赞,让更多的Python爱好者看到。谢谢