装饰器

装饰器 = 高阶函数 + 嵌套函数

  高阶函数:将一个函数作为实参进行传递    

  def func():

    print("func")

  def test(func):

    print("test")  

    func()

  test()

  嵌套函数: 在一个函数体内定义另一个函数  

  x = 0

  def test1():

    x = 1

    def test2():

      x = 2

      print(x)

    test2()

  test1()    --> 2  嵌套函数的作用域和局部变量的作用域一致

装饰器的特性:1、不改变被装饰函数的源代码

   2、不改变被装饰函数的运行方式

import time

#装饰器

def timer(func):

  def deco():

    start_time = time.time()

    func()

    stop_time = time.time()

  return deco

#原函数

@timer      #相当于 test1 = timer(test1)

def test1():

  time.sleep(3)   #休眠3s

  print("test1")

@timer

def test2():

  time.sleep(3)

  print("test2")

test1()

test2()

原文地址:https://www.cnblogs.com/hqd2008/p/7652698.html