装饰器

简介: # 装饰器的本质: 闭包函数 # 功能: 就是在不改变原函数调用方式的情况下,在这个函数前后加上扩张功能 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
目录
相关文章
|
22天前
|
JavaScript
03_装饰器
03_装饰器
45 1
|
22天前
22_自定义装饰器
22_自定义装饰器
69 0
|
11月前
|
Python
一日一技:装饰器如何装饰异步函数
一日一技:装饰器如何装饰异步函数
110 0
|
7月前
|
安全
闭包和装饰器
闭包和装饰器
|
12月前
|
存储 JavaScript 前端开发
装饰器语法
利用typeof判定类型的取值范围是:'undefined' /'boolean' /'string' /'number' /'object' /'function' /'symbol' 在JavaScript内部使用typeof判断类型依据的是二进制,根据变量的机器码低位1-3位存储其类型信息,有如下规则:
78 0
|
存储 缓存 关系型数据库
Python装饰器1-闭包与函数装饰器
闭包与函数装饰器:被装饰函数不带参数、被装饰函数带参数、装饰器带参数,装饰器的调用
Python装饰器1-闭包与函数装饰器
|
开发者 Python
装饰器详解|学习笔记
快速学习装饰器详解
76 0
|
Python 容器
【globlal与nonlocal和闭包函数、装饰器、语法糖】
【globlal与nonlocal和闭包函数、装饰器、语法糖】
103 0
|
Python
Python编程:decorator装饰器
Python编程:decorator装饰器