在之前提到过,装饰器内部的函数已经取代了原有的函数(新的函数),那么这个函数会缺失很多属性 1 def is_admin(f): 2 def wrapper(*args, **kwargs): 3 if kwargs.get('usrename') != 'admin': 4...
分类:
其他好文 时间:
2014-10-13 21:36:37
阅读次数:
146
很多人把装饰器搞的很复杂,其实本质很简单.
首先,什么是装饰器呢?在代码中发现戴着@xxx帽子的,就是装饰器.
那要怎么自己定义一个装饰器呢?
其实任何一个接收一个参数的callable都可以用来做装饰器,比如函数和类.为方便起见,下面的例子都用函数来说明.
def deco(func):return 1
这里,deco就可以做装饰器.
@deco
def f(args):pass
...
分类:
编程语言 时间:
2014-10-11 20:05:36
阅读次数:
240
本随笔是对Python札记 -- 装饰器的一些补充。 使用装饰器的时候,被装饰函数的一些属性会丢失,比如如下代码: 1 #!/usr/bin/env python 2 3 def deco(func): 4 def wrapper(): 5 print "Wrap sta...
分类:
编程语言 时间:
2014-10-10 18:58:14
阅读次数:
189
写这篇随笔是因为今天自己在写插件和过滤方法的过程中碰壁了,折腾了好久终于稍微发现些问题,在此记下,以作备忘。在看了xadmin的插件机制后,笔者也想使用该思想来扩展kadmin中视图的方法。例如,在一个登陆视图中,一般的逻辑如下:class LoginView(BaseAdminView): ...
分类:
编程语言 时间:
2014-10-02 18:33:53
阅读次数:
300
相对于适配器模式,或者说装饰器模式,代理模式理解起来更加简单。
代理这个词应该比较好理解,代替去做就是代理。
比如,我们买卖房子,那么我们会找中介,我要卖房子,但是我们没有时间去卖,我主动交给中介,中介会帮我发布,会帮我找买家,带买家看房,最后我只要收到钱就行了。
买家的目的:卖房拿钱。。卖加最终的目的就是把房子换成钱。...
分类:
编程语言 时间:
2014-09-28 16:33:43
阅读次数:
312
由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。>>> def now():... print '2013-12-25'...>>> f = now>>> f()2013-12-25函数对象有一个__name__属性,可以拿到函数的名字:>>> now.__...
分类:
编程语言 时间:
2014-09-28 02:47:40
阅读次数:
382
“老板,来份全辣锅底,不要给我用装饰器模式来配料!”我特地狠狠的强调了最后一句话。
不到一会,老板给我端来了一个火锅和几个盘子,火锅里装了盐水,而盘子里放了辣椒,花椒,茴香,大蒜等佐料。。。。。。。。。。
这时候大家可能就需要问了,这咋吃啊。。。难道让我自己配料么?
这便是是我们的矛盾了!客户需要的一盘已经配好料的火锅汤底,但是我们初期给用户的锅里面或许只有盐水,我们不可能把原料给客户,让客户自己配料。...
分类:
编程语言 时间:
2014-09-25 19:50:07
阅读次数:
206
从今天开始将常用到的设计模式整理、归档,首先介绍下设计模式基础知识。
一、设计模式分类
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式...
分类:
其他好文 时间:
2014-09-25 15:57:39
阅读次数:
191
总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元...
分类:
其他好文 时间:
2014-09-25 03:06:48
阅读次数:
314
最近写一个py脚本来整理电脑中的文档,其中需要检校输入的字符,为了不使代码冗长,想到使用装饰器。
上网搜索有关python的装饰器学习文档,主要看的是AstralWind的一篇博文,以及Limodou的一篇文章。作为初学者,这两篇文章对新手有很大的帮助,但仍然有些不易理解的地方。因此在此以一个初学者的认知记录一下python的装饰器的学习心得。
1. 什么是装饰器?
...
分类:
编程语言 时间:
2014-09-24 10:34:46
阅读次数:
326