标签:
初识装饰器(decorator )
Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。
使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。
先看一个例子:
#!/usr/bin/env python def outer(func): print(‘这是outer。‘) def inner(): print(‘这是inner。‘) func() print(‘这是最后。‘) return inner @outer def f1(): print(‘这是F1。‘) f1()
输出结果:
这是outer。
这是inner。
这是F1。
这是最后。
是不是对这个输出感到惊奇?下面详细说说这段代码的执行过程。
“这是outer。”
,下面在执行函数inner(inner其实就是新的f1),输出"这是inner。" , 然后执行func函数,func实际上就是上一步传入的f1
,所以执行func()就是执行原函数f1(),然后再输出"这是最后。"
此执行过程需不断体会方能领悟。
标签:
原文地址:http://www.cnblogs.com/wumingxiaoyao/p/5725725.html