实现功能
使用装饰器增加异常处理功能
实现代码
# 假设我有一个函数(原函数),可以实现两个数相除
def divide(x, y):
return x / y
res = divide(10, 2)
print(res)
# 定义一个装饰器,使得原函数能够有处理异常的功能
def handle_exceptions(func): # 外层函数:接受一个函数(原函数)作为参数,并返回一个函数(新函数)。
def wrapper(*args, **kwargs): # 里层函数:接受和原函数相同的参数
try:
# 调用被装饰的函数
return func(*args, **kwargs) # 将原来的函数包装在自己功能中,同时添加新的功能
except Exception as e:
# 处理异常的逻辑
# 返回异常信息
return e
return wrapper # 新函数
# 使用@符号+装饰器的名字来使用装饰器,可以在不改变原函数(divide)的情况下增加异常处理的功能
@handle_exceptions
def divide(x, y): # 这是想要装饰的函数(原函数),即实现两个数相除
return x / y
# 也可以使用divide = handle_exceptions(divide)来使用装饰器,可以在不改变原函数(divide)的情况下增加异常处理的功能
# divide = handle_exceptions(divide)
res = divide(10, 0)
print(res)
实现效果
本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据挖掘相关科研工作,对数据挖掘有一定认知和理解,会结合自身科研实践经历不定期分享关于python机器学习、深度学习、数据挖掘基础知识与案例。
致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。
邀请三个朋友关注V订阅号:数据杂坛,即可在后台联系我获取相关数据集和源码,送有关数据分析、数据挖掘、机器学习、深度学习相关的电子书籍。