博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 装饰器 生成及原里
阅读量:6711 次
发布时间:2019-06-25

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

# 装饰器形成的过程 : 最简单的装饰器 有返回值的 有一个参数 万能参数# 装饰器的作用# 原则 :开放封闭原则# 语法糖 :@# 装饰器的固定模式#不懂技术import time# print(time.time()) # 获取当前时间# time.sleep(10)  #让程序在执行到这个位置的时候停一会儿# def timmer(f):    #装饰器函数#     def inner():#         start = time.time()#         ret = f()       #被装饰的函数#         end = time.time()#         print(end - start)#         return ret#     return inner## @timmer         #语法糖 @装饰器函数名# def func():     #被装饰的函数#     time.sleep(0.01)#     print('老板好同事好大家好')#     return '新年好'# # func = timmer(func)# ret = func()   #inner()# print(ret)# 装饰器的作用 —— 不想修改函数的调用方式 但是还想在原来的函数前后添加功能# timmer就是一个装饰器函数,只是对一个函数 有一些装饰作用# 原则: 开放封闭原则#   开放 : 对扩展是开放的#   封闭 : 对修改是封闭的# 封版# def outer():#     def inner():#         return 'inner'#     inner()## outer()#装饰带参数函数的装饰器# def timmer(f):    #装饰器函数#     def inner(*args,**kwargs):#         #(1,2) /(1)#         start = time.time()#         ret = f(*args,**kwargs)  #f(1,2)       #被装饰的函数#         end = time.time()#         print(end - start)#         return ret#     return inner## @timmer         #语法糖 @装饰器函数名# def func(a,b):     #被装饰的函数#     time.sleep(0.01)#     print('老板好同事好大家好',a,b)#     return '新年好'## @timmer         #语法糖 @装饰器函数名# def func1(a):     #被装饰的函数#     time.sleep(0.01)#     print('老板好同事好大家好',a)#     return '新年好'# # func = timmer(func)# ret = func(1,2)   #inner()# ret = func(1,b = 2)   #inner()# print(ret)# def wrapper(f):    #装饰器函数,f是被装饰的函数#     def inner(*args,**kwargs):#         '''在被装饰函数之前要做的事'''#         ret = f(*args,**kwargs)    #被装饰的函数#         '''在被装饰函数之后要做的事'''#         return ret#     return inner## @wrapper         #语法糖 @装饰器函数名# def func(a,b):     #被装饰的函数#     time.sleep(0.01)#     print('老板好同事好大家好',a,b)#     return '新年好'# def wrapper():#     def inner():#         pass#     return innerdef wrapper(func):   #qqxing    def inner(*args,**kwargs):        ret = func(*args,**kwargs)   #被装饰的函数        return ret    return inner@wrapper        #qqxing = wrapper(qqxing)def qqxing():    print(123)ret = qqxing()   #inner## 讲解元旦作业 扩展装饰器

 

转载于:https://www.cnblogs.com/xiao-zhi/p/9896193.html

你可能感兴趣的文章
图片 文件 转base64
查看>>
Vuex源码学习(四)module与moduleCollection
查看>>
python基础总结 Part.1
查看>>
【OC梳理】description
查看>>
一篇不太一样的RxJava介绍(二):关于操作符背后的故事
查看>>
FFmpeg模块介绍
查看>>
张家口a货翡翠,梧州a货翡翠
查看>>
JS Object的静态方法汇总( 上 )
查看>>
java B2B2C Springcloud多租户电子商城系统-Eureka服务端与客户端常用配置
查看>>
jvm疯狂吞占内存,罪魁祸首是谁?
查看>>
表格存储Tablestore权威指南(持续更新)
查看>>
java B2B2C源码电子商城系统-Kafka快速入门
查看>>
Spring Cloud云服务 - HongHu架构common-service 项目构建过程
查看>>
hadoop中hive原理及安装
查看>>
pear默认安装后一个小bug
查看>>
nginx-通过Nginx统计当前每个域名流量
查看>>
OpenSSL学习(二十五):基础-指令x509
查看>>
sql server随机函数
查看>>
WinAircrackPack 破解你邻居家的无线WIFI密码
查看>>
自定义格式化字符串
查看>>