美文网首页Python精耕细作Python点滴
[Python设计模式] 03 - 装饰模式

[Python设计模式] 03 - 装饰模式

作者: 蓝色信仰 | 来源:发表于2015-03-28 22:15 被阅读218次

设计模式的目的是让代码易维护、易扩展,不能为了模式而模式,因此一个简单的工具脚本是不需要用到任何模式的。

装饰模式:动态的给对象添加额外的功能。
Python内置了很多对装饰器的支持,因此在Python中使用装饰模式是非常容易的,下面是一个典型的例子,给函数增加日志功能:

import functools 
def log_wrapper(fun):
    @functools.wraps(fun)
    def wrapper(*args, **kwargs):
        print '在函数执行前加日志'
        ret = fun(*args, **kwargs)
        print '在函数执行后家日志'
        return ret
    return wrapper


@log_wrapper
def test():
    print 'Hello, 世界'

functools.wraps是Python标准库提供的一个特殊的装饰器,用来解决装饰器带来的一些常规问题,如函数名称、doc等的不一致问题。@是Python针对装饰器提供的一个语法糖,上面的@log_wrapper相当于wrap_test = log_rapper(test),用@后,这个步骤由解释器代劳了。

装饰器是Python编程必须掌握的一项技能,在编码过程中经常会用到。

原文地址:http://www.isware.cn/python-design-pattern/04-decorator/

相关文章

  • [Python设计模式] 03 - 装饰模式

    设计模式的目的是让代码易维护、易扩展,不能为了模式而模式,因此一个简单的工具脚本是不需要用到任何模式的。 装饰模式...

  • 设计模式03-装饰者设计模式

    [toc] 设计模式03-装饰者设计模式 主要来源Head First设计模式(书) 第5个设计原则(开放-关闭原...

  • Python装饰器模式

    标签: python|设计模式|装饰器模式 引子 对于装饰器模式我正在一点一点的理解........使用对象组合的...

  • 9、结构型模式-装饰器设计模式

    1、如虎添翼的设计模式-装饰器设计模式 简介:讲解-装饰器设计模式介绍和应用场景 装饰器设计模式(Decorato...

  • python中装饰器的装饰顺序和执行顺序

    在python语言中“装饰器”模式被设计成语言内置的设计模式,使得使用该模式变得简单,仅仅需要在目标函数前使用‘@...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • 11.4设计模式-装饰模式-讲解

    设计模式-装饰模式 装饰模式详解 装饰模式在android中的实际运用,避免了耦合 1. 装饰模式详解 2.装饰模...

  • 设计模式

    设计模式 单例模式、装饰者模式、

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

网友评论

    本文标题:[Python设计模式] 03 - 装饰模式

    本文链接:https://www.haomeiwen.com/subject/jbunxttx.html