zoukankan      html  css  js  c++  java
  • 011.Python基础--装饰器

    装饰器的作用:

    针对一段程序,它会实现某个功能

    而有的时候,我们想要拓展这个程序的功能:

      此时我们能想到的是在原有程序基础上改动代码,从而实现新增的功能

      再有就是使用装饰器,在不变原程序的基础上,实现新增功能

    我们来看一个简单的例子:

    import time

    def func():

      print('...one...')

      time.sleep(1)

      print('...two...')

    func()

    此时那我想新增功能:记录一下程序运行了多长时间?

    import time

    def func():

      start_time = time.time()

      print('...one...')

      time.sleep(1)

      print('...two...')

      end_time = time.time()

      process_time = end_time - start_time

      print('程序运行了:%f' % process_time)

    func()

    那么装饰器应该怎么写呢?

    第一:将程序分开,核心不变的作为一块 ,要装饰的功能作为一块

    第二:连接符为   @装饰函数名

    第三:装饰部分里面的参数可以自己定义,但是要与执行的保持一致 如:sweet(x)对应x()

    tips:装饰器写法又叫糖果语 <>这个名字还真甜~~

    import time

    #装饰部分,定义一个甜的糖果语 哈哈哈哈

    def sweet(x):

      def test():

        start_time = time.time()

        x()

        end_time = time.time()

        process_time = end_time - start_time

        print('程序运行了:%f' % process_time)

      # 返回test函数执行的内容

      return test

    @sweet

    #核心程序部分

    def func():

      print('...one...')

      time.sleep(1)

      print('...two...')

    if __name__ == '__main__':

      func()

      

  • 相关阅读:
    ssh 使用密钥文件
    VS2015企业版,社区版,专业版详细对比
    Redis 与 数据库处理数据的两种模式(转)
    工业级物联网项目架构设计思想(转)
    C# and Redis,安装作为服务
    C# CRC32
    c++,C# 转换
    app配置智能硬件的解决方案
    C# 与C++的数据转换
    C++ 对数组sizeof 和对数组元素sizeof
  • 原文地址:https://www.cnblogs.com/zhouA/p/14506075.html
Copyright © 2011-2022 走看看