• 从入门到自闭之python三大器--装饰器


    1. 开放封闭原则:在不修改源代码及调用方式,对功能进行额外添加就是开放封闭原则

      1. 开放:对代码的扩展进行开发
      2. 封闭:修改源代码
    2. 装饰(额外功能) 器:工具(函数)

      1. 普通版:
      # print(time.time())	#时间戳,小数
      
      
      import time 
      def func():
             time.sleep(1)
             print("这是小刚写的功能")
             
      def func():
             time.sleep(1)
             print("这是小红写的功能")
             
      def index():
          time.sleep(2)
      	print("这是小明写的功能")
      
      
      def times(func):	#func == index 函数内存地址
          def foo():
              start_time = time.time()	#时间戳,被装饰函数执行前干的事
              func()	#fun == index ,后面加括号就是调用函数
              print(time.time()-start_time)#被装饰函数执行后干的事
              return foo 
       
      index = time(index)			#index== foo内存地址
      index()		#index() == foo ()
      func = time(func)
      func()
          
      

    1. python帮咱们做的一个东西,语法糖

      1. 要将语法糖放在装饰器的函数正上方

        # def warpper(f):
        #     def inner():
        #         print("111")
        #         f()
        #         print("222")
        #     return inner
        #
        # @warpper  # func = warpper(func)
        # def func():
        #     print("被装饰的函数1")
        #
        # @warpper  # index = warpper(index)
        # def index():
        #     print("被装饰的函数2")
        #
        # func()
        # index()
        
        # def warpper(f):
        #     def inner(*args,**kwargs):
        #         print("被装饰函数执行前")
        #         ret = f(*args,**kwargs)
        #         print("被装饰函数执行后")
        #         return ret
        #     return inner
        #
        # @warpper
        # def func(*args,**kwargs):
        #     print(f"被装饰的{args,kwargs}")
        #     return "我是func函数"
        #
        # @warpper
        # def index(*args,**kwargs):
        #     print(11111)
        #
        # print(func(1,2,3,4,5,6,7,8,a=1))
        

  • 相关阅读:
    行转列函数listagg() WITHIN GROUP ()
    位图索引
    windows 杀掉进程
    vue 实践(过滤器)
    vue 总结
    vue v-show v-if 的使用
    vue v-for 绑定数据
    vue v-model实现数据的双向绑定
    vue .stop .self .capture .prevent 阻止冒泡
    vue v-on v-text 的运用
  • 原文地址:https://www.cnblogs.com/heyulong1214/p/11462929.html
Copyright © 2020-2023  润新知