zoukankan      html  css  js  c++  java
  • 装饰器初成

    装饰器的初成:

    计算代码执行的时间

    import time   #导入time模块
    time.time()   #获取当前时间
    time.sleep()  #让程序再执行到此位置时停一会儿
    
    import time 
    def func():
        time.sleep(0.01)
        print('大家好!')
    def timmer(f):  #装饰器函数
        def inner():
            strat = time.time()
            f()     #被装饰函数
            end = time.time()
            print(end-start)
        return inner
    func = timmer(func)
    func()
    

    通过闭包函数返回内部函数名,再外部接收

    装饰器的作用:

    用来实现,不想修改函数的调用方式,但是还想再原来的函数前后增加功能

    原则:开放封闭原则

    开放:对扩展是开放的

    封闭:对修改是封闭的

    语法糖:

    @装饰器函数名(@timmer)来代替func = timmer(func)

    位置:紧贴着被装饰的函数

    装饰器的本质:闭包函数

    装饰器的最终形成和固定格式:

    装饰器的固定写法

    def wrapper(func):                 #装饰器函数,func是被装饰的函数
        def inner(*args,**kwargs):
            '''在装饰之前要完成的操作'''
            ret = func(*args,**kwargs) #被装饰是的函数
            '''在装饰之后要完成的操作'''
            return ret
        return inner
    @wrapper   #语法糖    相当于  qqxing = wrapper(qqxing)
    def qqxing(): #被装饰的函数
        print(123)
  • 相关阅读:
    基于RSA securID的Radius二次验证java实现(PAP验证方式)
    一些指令 & 一些知识 (Linux Spring log4j...)
    RSA, ACS5.X 集成配置
    Python中的动态属性与描述符
    设计模式(一):单例模式
    JavaWeb
    动态规划_背包问题
    动态规划_最长上升子序列
    MySQL复习
    动态规划_数字三角形
  • 原文地址:https://www.cnblogs.com/twinkle-/p/10500664.html
Copyright © 2011-2022 走看看