zoukankan      html  css  js  c++  java
  • 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
      
  • 相关阅读:
    2015上阅读计划
    《梦断代码》读书笔记 第2篇
    四则运算3
    求数组中最大子数组的和(一维)
    四则运算2—单元测试
    四则运算2
    《梦断代码》读书笔记 第1篇
    四组运算2(思路)
    四则运算1
    读书笔记
  • 原文地址:https://www.cnblogs.com/xiaohei-chen/p/11971455.html
Copyright © 2011-2022 走看看