python基础十之装饰器
2024-09-06 15:31:56
1,装饰器的形成
编程原则:开放封闭原则。
开放:对扩展是开放的
封闭:对修改是封闭的
因为修改是封闭的,所以为了对函数进行功能的扩展,就使用装饰器!
2,装饰器的定义
# wrapper就是一个装饰器函数,就是对一个函数有一些装饰效果
def wrapper(f): # 装饰器函数,f是被装饰的函数
def inner(*args, **kwargs):
# 在被装饰函数之前想增加的功能
ret = f(*args, **kwargs) # 被装饰的函数
# 在被装饰函数之后想增加的功能
return ret # 接收被装饰函数的返回值
return inner
# 装饰器的作用:不修改函数的调用方式,且能在函数的前后添加功能
3,装饰器的使用
@wrapper # 语法糖 @装饰器函数名 相当于func = time_count(func)
def func(): # 被装饰的函数
time.sleep(1)
print('zxc')
return 'hahaha'
ret = func() # zxc
print(ret) # hahaha
4,装饰器实例
import time
# 计算函数运行时间
def wrapper(f): # 装饰器函数,f是被装饰的函数
def inner(*args, **kwargs):
start = time.time()
ret = f(*args, **kwargs) # 被装饰的函数
end = time.time()
print(end-start)
return ret # 接收被装饰函数的返回值
return inner @wrapper
def func(): # 被装饰的函数
print('zxc')
func() # 打印zxc 打印函数hunc的运行时间
最新文章
- webpack入门教程之Hello webpack(一)
- Microsoft SQL Server 2005 Service fails to start
- C语课设心得分享(三)
- modernizer的意义
- SSH连接 NAT型 VirtualBox + LINUX
- Spring MVC 接收Json格式参数
- 第十篇、HTML5实战篇——1
- Unity3d 屏幕空间人体皮肤知觉渲染&;次表面散射Screen-Space Perceptual Rendering &; Subsurface Scattering of Human Skin
- 使用jquery生成二维码
- 左右v$datafile和v$tempfile中间file#
- c语言第五次作业--函数
- prim算法和克鲁斯卡尔算法
- Python-TXT文本操作
- linux下vim的安装及其设置细节
- 基于快速排序思想partition查找第K大的数或者第K小的数。
- NUMA的取舍与优化设置
- jQuery的节点选择
- 汉码盘点机PDA无缝对接思迅思迅盘点机思迅条码数据采集器批号商品盘点的方法
- [转]Python的getattr(),setattr(),delattr(),hasattr()
- 【maven】Maven打包后为何文件大小改变了