博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
装饰器
阅读量:6894 次
发布时间:2019-06-27

本文共 621 字,大约阅读时间需要 2 分钟。

定义

1.开放封闭原则,对拓展开放,对修改封闭

2装饰器,装饰器本质可以任意调用

  原则:

1.不修改源代码

2,不修改调用方法

目标:添加新功能

实例:

import timeimport randomdef timmer(func):    def wrapper():        start_tim=time.time()        func()        end_tim=time.time()        print(end_tim-start_tim)    return wrapperdef index():    time.sleep(random.randrange(1,5))    print('sssssssss')index=timmer(index)index()

装饰器的语法

@timmer #相当于index=timmer(index)

def index():

    time.sleep(random.randrange(1,5))

    print('sssssssss')

================== 在使用的@必须要跟在index上面

闭包函数:

自带作用域

惰性计算  仅定义 ,后期调用才执行

使用了index__warpped__()可以使用原始功能但是一般不会这么用

 

转载于:https://www.cnblogs.com/935415150wang/p/7027594.html

你可能感兴趣的文章
[Java] TreeMap、HashMap、LindedHashMap的区别
查看>>
javascript 常用自定义方法
查看>>
MariaDB · 新特性 · 窗口函数
查看>>
thinkphp 3.2分布式数据库读写分离扩展阅读
查看>>
iOS流布局UICollectionView系列二——UICollectionView的代理方法
查看>>
mac 配置jdk1.8(小白教程)
查看>>
推荐一个 MacOS 上用了就无法自拔的神器 [Hammerspoon]
查看>>
TensorFlow Hub--用一行代码完成迁移学习
查看>>
利用nginx 配置vue多项目环境
查看>>
面试:你知道为什么会有 Generator 吗
查看>>
异常定位(1)--生产环境通过SourceMap还原压缩后JavaScript错误,快速定位异常
查看>>
tomcat学习:安装ssl证书
查看>>
TkMybatis的常用方法介绍
查看>>
大力发展金融创新,GTQ FIN致力于发展创新型衍生品交易平台
查看>>
安装vue-cli 3.0和注意事项
查看>>
【Vue.js 牛刀小试】:第十一章 - Vue 中 ref 的使用
查看>>
JSX
查看>>
LeetCode 之 JavaScript 解答第239题 —— 滑动窗口最大值(Sliding Window Maximum)
查看>>
一个项目带你走进产品经理的世界(2)需求分析
查看>>
css经典布局——圣杯布局
查看>>