Python中装饰器的用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中装饰器的用法相关的知识,希望对你有一定的参考价值。
- 定义:
- 装饰器本身就是一个函数
- 为其他函数提供附加功能
- 不改变源代码
- 不改变原调用方式
- 装饰器=高阶函数+嵌套函数
- 知识点:
- 函数本身就是一个变量(意味着可以被复制给一个变量: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()
以上是关于Python中装饰器的用法的主要内容,如果未能解决你的问题,请参考以下文章