zoukankan      html  css  js  c++  java
  • 从入门到自闭之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))
        

  • 相关阅读:
    对象流(序列化,反序列化)
    随机存取文件流(双性流)
    网络编程
    ByteArrayOutputStream小测试
    Java基础
    IO流实现GBK写入文件然后转换UTF-8
    IO流实现简单的文件的剪切
    递归
    ZKDQ--问题整理
    postman测试上传文件接口
  • 原文地址:https://www.cnblogs.com/heyulong1214/p/11462929.html
Copyright © 2011-2022 走看看