• Python 函数 V (装饰器)


    1.今日内容大纲

    1. 开放封闭原则
    2. 初识装饰器
    3. 被装饰函数带返回值
    4. 被装饰函数带参数
    5. 标准版装饰器

    2.今日内容

    1. 开放封闭原则

      1. 软件面世时,不可能把所有功能都设计好,当前的未来一两年功能给你上线,定期更新迭代。对于软件之前写的源代码一般都不会修改,函数里面的代码以及函数的调用方式
      2. 开放原则:在源码不改变的情况下,增加一些额外的功能
      3. 封闭原则:不要改变源码
      4. 装饰器:完美的诠释了开放封闭原则
        • 装饰器就是一个函数,在不改变原函数的代码以及调用方式的前提下,为其增加信的功能
    2. 初识装饰器

      import time
      def times(f):
        def inner():
          start_time = time.time()
          f()
          end_time = time.time()
        return inner
      def index():
        time.sleep(2)
        print(666)
      index = times(index)
      index()
      
      #优化
      @times
      def index():
        time.sleep(2)
        print(666)
      index()
      
    3. 被装饰函数带返回值

      import time
      def times(f):
        def inner():
          start_time = time.time()
          ret = f()
          end_time = time.time()
          return ret
        return inner
      @times
      def inner():
        time.sleep(2)
        print(666)
        return 888
      inner()
      
    4. 被装饰函数带参数

      import time
      def times(f):
        def inner(*args,**kwargs):
          start_time = time.time()
          ret = f(*args,**kwargs)
          end_time = time.time()
          return ret
        return inner
      @times
      def index(name):
        time.sleep(2)
        print(f'{name}666')
        return 888
      index()
      
    5. 标准版装饰器

      def wrapper(f):
        def inner(*args,**kwar):
          ret = f(*args,**kwargs)
          return ret
        return inner
      
  • 相关阅读:
    配置步骤
    swap区
    Oracle的left join中on和where的区别
    drop与truncate
    关于trace
    oracle执行计划连接方式
    oracle系统结构
    查询存档
    oracle统计信息
    分区索引
  • 原文地址:https://www.cnblogs.com/xiaohei-chen/p/11971455.html
Copyright © 2020-2023  润新知