标签:
本质上是个函数,功能是装饰其他函数—就是为其他函数添加附加功能
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