2011年8月2日

【转】Python装饰器学习

摘要: 在《Core Python Programming 2nd》中学习到了装饰器,这对我来说是个完全陌生的语法,第一遍愣是没看懂,很有必要记一下。第一眼看到这个词Decorator,我联想到了DP中的Decorator模式,后来才知道完全不是这么一回事。(再次鄙视一下国内浮躁的博客,我google了一下,几乎千篇一律都是什么锁同步装饰器、超时装饰器,我对原作者表达敬仰,可是大家都是转载就不像话了,也是对网络资源的极大浪费,也许真正有价值的博文就湮没在这片都是一模一样的东西里了)1. 这是个什么东东?书上说得不是太清楚,它说类似于Java的AOP(Aspect Oriented Programmin 阅读全文

posted @ 2011-08-02 22:34 ^希望^ 阅读(224) 评论(0) 推荐(0) 编辑

【转】Python装饰器与面向切面编程

摘要: 今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。1. 装饰器入门1.1. 需求是怎么来的?装饰器的定义很是抽象,我们来看一个小例子。1deffoo():2print'in foo()'34foo()这是一个很无聊的函数没错。但是突然有一个更无聊的人,我们称呼他为B君,说我想看看执行这个函数用了多长时间,好吧,那么我们可以这样做:1impo 阅读全文

posted @ 2011-08-02 22:32 ^希望^ 阅读(172) 评论(0) 推荐(0) 编辑

【转】理解Python中的装饰器

摘要: 前几天看到Stackoverflow上的一个提问。如果使用如下的代码:?1234@makebold@makeitalicdef say():return "Hello"打印出如下的输出:?1<b><i>Hello<i></b>给出的答案如下:?12345678910111213141516def makebold(fn):def wrapped():return "<b>" + fn() + "</b>"return wrappeddef makeitalic(f 阅读全文

posted @ 2011-08-02 15:32 ^希望^ 阅读(679) 评论(1) 推荐(0) 编辑

导航