- 定义:
- 装饰器本身就是一个函数
- 为其他函数提供附加功能
- 不改变源代码
- 不改变原调用方式
- 装饰器=高阶函数+嵌套函数
- 知识点:
- 函数本身就是一个变量(意味着可以被复制给一个变量:test=test(1) )
- 高阶函数
- 把函数名当成一个实参传递给另一个函数func(test1) (不改变源代码的前提下添加代码)
- 返回值中包含函数名return deco (不改变函数的调用方式)
- 嵌套函数:函数中加入新的函数def func1(): def func2():
- 典型结构:
1 def func1(test): 2 def deco(): 3 #progress 4 return deco#返回函数的地址,达到不改变调用方式的目的
完整程序:
# __Author__Panda-J____ import time def timer(func): # for test1 & 2 start_time = time.time() func() # run func and test its running time end_time = time.time() print("this func running time is %s" % (end_time - start_time)) return func @timer def test1(): time.sleep(1) print("this is test1") @timer def test2(): time.sleep(1) print("this is test2") test1() test2()
时间: 2024-11-02 20:31:29