python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python装饰器

python设计模式之装饰器模式

作者:​ 图图加油   ​

这篇文章主要介绍了python设计模式之装饰器模式,文章基于python得设计模式资料展开饰器模式得详细资料,具有一定的参考价值,需要的小伙伴可以参考一下

装饰器模式

装饰器模式解决什么问题?

装饰器,顾名思义,就是用来装饰其他实物,增加被装饰物的功能而不改变被装饰物。这就像我们买车,同一款车型,有很多功能是选配的,但是车的核心功能不变。我们可以在购买时,根据需要选配不同的配置。

如何实现?

想象一下,你是一个装修工,如果要装饰一辆车,那么你首先需要有一辆车,而且在装饰过程中,你不能够改变车原有的功能(接口)。

如类图所示:

class Core:
    def some_action():
        pass

class Decorator:
    def __init__(self,core):
        self.core = core

    def some_action():
        ....
        self.core.some_action()
        .....

python 装饰器语法糖

装饰器太常用了,python专门的语法糖简化了装饰器的使用。最外层函数接收一个函数对象并返回内层函数,内层函数是正真的执行函数。

# 装饰器定义
def decorator(func):
    def wrapper(*args,**kwargs):
        .....
        result = func(*args,**kwargs)
        ....
        return result
    return wrapper
 # 装饰器使用
 @decorator
 def func():
     pass

虽然形式变了,但是实质没有变:保存接口实例,实现相同的接口。

到此这篇关于python设计模式之装饰器模式的文章就介绍到这了,更多相关python装饰器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文