python装饰器之类装饰器
类装饰器
需求
需求: 需要给一个多方法的py文件加上如果其中一个函数出现异常,其余继续执行,然后也统计每个函数的运行时间
定义一个类装饰器 test.py
import time
from functools import wraps
class MyDec:
"""我的类装饰器"""
def __test(sel, func, *args, **kwargs):
"""
处理函数异常,这是一个前置函数
"""
try:
res = func(*args, **kwargs)
except:
res = None
print(func.__name__, "执行失败")
return res
def __call__(self, func):
"""
重构call函数,实现类装饰器
func:使用了装饰器的函数本身
"""
@wraps(func)
def wrapper(*args, **kwargs):
t1 = time.time()
# res = func(*args, **kwargs)
# 在这里使用前置函数
res = self.__test(func, *args, **kwargs)
t2 = time.time()
print("运行时间:", t2 - t1)
return res
return wrapper
调用装饰器 test2.py
from test import MyDec
# 类装饰器应用时一定要加上()
@MyDec()
def classssss(x, y):
print("我要使用类装饰器")
x/y
if __name__ == '__main__':
classssss(1, 1)
print("发生异常后是否还执行")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)