python函数式编程

(一)、闭包+装饰模式

# -*- coding: utf-8 -*-

# 闭包 ==> 相关参数和变量都保存在返回的函数中)
# 装饰模式 ==> python 语言级别的支持
def log(func): def wrapper(*args, **kw): print('call %s():' % func.__name__) return func(*args, **kw) return wrapper ''' 借助Python的@语法,把decorator置于函数的定义处的上方 1. 调用log高阶函数,返回wrapper函数引用,但wrapper函数体并没有被调用(延迟加载) 2. 调用now(),会启用wrapper函数体的内容,这时1中wrapper函数引用指向了具体的代码块,这段代码块是now()函数定制的 3. 调用func(),这里是定制的now(),传参,打印 ''' @log def now(): print('2017-01-18','2017-01-19') now()

 ref:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431835236741e42daf5af6514f1a8917b8aaadff31bf000

(二)、待补充

posted @ 2017-01-19 16:43  Reynold.C  Views(251)  Comments(0Edit  收藏  举报