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

      

  • 相关阅读:
    poj3278 Catch That Cow
    poj2251 Dungeon Master
    poj1321 棋盘问题
    poj3083 Children of the Candy Cor
    jvm基础知识—垃圾回收机制
    jvm基础知识1
    java面试基础必备
    java soket通信总结 bio nio aio的区别和总结
    java scoket aIO 通信
    java scoket Blocking 阻塞IO socket通信四
  • 原文地址:https://www.cnblogs.com/zhouA/p/14506075.html
Copyright © 2020-2023  润新知