标签:
本质上是个函数,功能是装饰其他函数—就是为其他函数添加附加功能
1) 不能修改被装饰函数的源代码;
2) 不能修改被装饰函数的调用方式;
1.3 实现装饰器知识储备:
定义一个函数相当于把函数体赋值给了函数名
见上篇学习笔记
定义:在一个函数体内用def去声明一个新函数
# def foo(): #定义函数foo()
...m=3 #定义变量m=3;
...def bar(): #在foo内定义函数bar()
...n=4 #定义局部变量n=4
...print(m+n) #m相当于函数bar()的全局变量
...bar() #foo()函数内调用函数bar()
# foo() #调用foo()函数
7
高阶函数+嵌套函数=>装饰器
# import time
# def timer(func):
...def deco(name):
...start_time = time.time()
...func(name)
...stop_time = time.time()
...print("The func run time is %s" % (stop_time-start_time))
...return deco
# @timer
# def test(name):
...time.sleep(3)
...print("In the test!--%s" % name)
# test(‘cc‘)
标签:
原文地址:http://www.cnblogs.com/cocc/p/5770642.html