zoukankan      html  css  js  c++  java
  • 装饰器

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

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

      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()

  • 相关阅读:
    File类
    Java运算符
    JAVA语法
    数据库-子查询
    爬取笔趣阁_完本书籍
    爬取动物图片源码
    爬取电影天堂上最新电影的下载链接的源码
    pyinstaller的安装、使用、出错解决办法
    Emmet插件使用方法总结
    Markdown基本语法
  • 原文地址:https://www.cnblogs.com/hqd2008/p/7652698.html
Copyright © 2011-2022 走看看