把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式lambda(lambda x: x*2)(3) 装饰器decorator装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理, Web权限校验, Cache等。例如记录日...
分类:
编程语言 时间:
2015-05-10 11:15:00
阅读次数:
181
@property:既能检查参数,又可以用类似属性这样简单的方式来访问类的变量,可以让调用者写出简短的代码class Student(object): #birth是可读写属性(多定义了一个setter的装饰器),而age就是一个只读属性 @property def birth...
分类:
编程语言 时间:
2015-05-09 23:39:18
阅读次数:
185
声明:本系列博客参考资料《大话设计模式》,作者程杰。
装饰器模式又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
UML类图:
角色:
组件对象的接口:可以给这些对象动态的添加职责
...
分类:
Web程序 时间:
2015-05-03 13:24:23
阅读次数:
169
tornado中的协程是如何工作的本文将按以下结构进行组织,说明tornado中协程的执行原理
协程定义
生成器和yield语义
Future对象
ioloop对象
函数装饰器coroutine
总结
协程定义
Coroutines are computer program components that generalize subroutines for nonpreemptive mult...
分类:
其他好文 时间:
2015-05-02 06:20:14
阅读次数:
1046
越来越感觉,对于一些术语,真的不能看了名字就想着用自己的 语言/想法 去试着解释,比如socket/套接字,再比如装饰器,仅凭字面意思,很难理解的,反而会把你带到坑里去def f1(fn): def action(): return ""+fn()+"" return ac...
分类:
编程语言 时间:
2015-05-01 18:42:16
阅读次数:
134
今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。1. 装...
分类:
编程语言 时间:
2015-04-29 23:06:56
阅读次数:
143
classShoping:
name={}
@staticmethod
defadd():
#name[‘1‘]=(‘name‘)
aa=("print内部方法在调用")
print(aa)
return(aa)
@classmethod
deftest(self):
print("这是我使用类方法调用!")
#returnself.add()
分类:
编程语言 时间:
2015-04-29 15:18:54
阅读次数:
162
装饰器基本概念大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验,Cache等。Python语言本身提供了装饰器语法(@),典型的装饰器实现如下:@function_wrapper
deffunction():
pass@实际上..
分类:
编程语言 时间:
2015-04-29 07:25:55
阅读次数:
185
前几天向几位新同事介绍项目,被问起了@login_required的实现,我说这是django框架提供的装饰器方法,验证用户是否登录,只要这样用就行了,因为自己不熟,并没有做过多解释。今天查看django官网,忽然发现,装饰器用法并不是django框架提供的,而是python的一种语法,真心汗一个,...
分类:
编程语言 时间:
2015-04-26 17:58:43
阅读次数:
123
Python有许多出色的语言特性,装饰器(Decorator)便是其中一朵奇葩。先来看看一段代码:def deco1(f): print 'decorate 1' return fdef deco2(f): print 'decorate 2' return f@deco1@...
分类:
编程语言 时间:
2015-04-24 22:23:21
阅读次数:
228