装饰器

简介: # 装饰器的本质: 闭包函数 # 功能: 就是在不改变原函数调用方式的情况下,在这个函数前后加上扩张功能 def timemer(func): def inner(*args,**kwargs): '''添加函数调用之前的扩展代码''' ret = fun.
# 装饰器的本质:  闭包函数
# 功能:  就是在不改变原函数调用方式的情况下,在这个函数前后加上扩张功能
def timemer(func):
    def inner(*args,**kwargs):
        '''添加函数调用之前的扩展代码'''
        ret = func(*args,**kwargs)
        '''添加函数调用之后的扩展代码'''
        return ret
    return inner
# 设计模式 原则 开放封闭原则
# 对扩展是开放的
# 对修改是封闭的

import time
def wrapper(func): #装饰
    def inner(*args,**kwargs):
        start = time.time()
        ret = func(*args,**kwargs)
        end = time.time()
        print(end - start)
        return ret
    return inner
@wrapper    #语法糖
def lll():
    time.sleep(0.1)
    print('hello')

lll()
---
hello
0.10107421875
目录
相关文章
装饰器:装饰器为主,闭包和高阶函数为辅
装饰器:装饰器为主,闭包和高阶函数为辅
|
3月前
|
测试技术 Python
装饰器
【8月更文挑战第1天】
20 2
|
6月前
|
JavaScript
03_装饰器
03_装饰器
65 1
|
Python
一日一技:装饰器如何装饰异步函数
一日一技:装饰器如何装饰异步函数
166 0
|
存储 编译器 索引
学习TypeScript20(装饰器Decorator)
定义一个类装饰器函数 他会把ClassA的构造函数传入你的watcher函数当做第一个参数
108 0
学习TypeScript20(装饰器Decorator)
|
存储 JavaScript 前端开发
装饰器语法
利用typeof判定类型的取值范围是:'undefined' /'boolean' /'string' /'number' /'object' /'function' /'symbol' 在JavaScript内部使用typeof判断类型依据的是二进制,根据变量的机器码低位1-3位存储其类型信息,有如下规则:
112 0
|
存储 缓存 关系型数据库
Python装饰器1-闭包与函数装饰器
闭包与函数装饰器:被装饰函数不带参数、被装饰函数带参数、装饰器带参数,装饰器的调用
Python装饰器1-闭包与函数装饰器
|
JSON 数据格式
装饰器的实际应用
使用装饰器模式改造slf4j打印json格式日志
764 0
装饰器的实际应用
|
开发者 Python
装饰器详解|学习笔记
快速学习装饰器详解