• Python数据分析实战-使用装饰器为函数增加异常处理功能(附源码和实现效果)


    实现功能

    使用装饰器增加异常处理功能

    实现代码

    1. # 假设我有一个函数(原函数),可以实现两个数相除
    2. def divide(x, y):
    3. return x / y
    4. res = divide(10, 2)
    5. print(res)
    6. # 定义一个装饰器,使得原函数能够有处理异常的功能
    7. def handle_exceptions(func): # 外层函数:接受一个函数(原函数)作为参数,并返回一个函数(新函数)。
    8. def wrapper(*args, **kwargs): # 里层函数:接受和原函数相同的参数
    9. try:
    10. # 调用被装饰的函数
    11. return func(*args, **kwargs) # 将原来的函数包装在自己功能中,同时添加新的功能
    12. except Exception as e:
    13. # 处理异常的逻辑
    14. # 返回异常信息
    15. return e
    16. return wrapper # 新函数
    17. # 使用@符号+装饰器的名字来使用装饰器,可以在不改变原函数(divide)的情况下增加异常处理的功能
    18. @handle_exceptions
    19. def divide(x, y): # 这是想要装饰的函数(原函数),即实现两个数相除
    20. return x / y
    21. # 也可以使用divide = handle_exceptions(divide)来使用装饰器,可以在不改变原函数(divide)的情况下增加异常处理的功能
    22. # divide = handle_exceptions(divide)
    23. res = divide(10, 0)
    24. print(res)

    实现效果

    本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据挖掘相关科研工作,对数据挖掘有一定认知和理解,会结合自身科研实践经历不定期分享关于python机器学习、深度学习、数据挖掘基础知识与案例。

    致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。

    邀请三个朋友关注V订阅号:数据杂坛,即可在后台联系我获取相关数据集和源码,送有关数据分析、数据挖掘、机器学习、深度学习相关的电子书籍。

  • 相关阅读:
    SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件
    我们该如何运营Facebook账号呢?
    2023-2024-1-高级语言程序设计-简单程序设计(作业)
    爱的历史摘录(西蒙·梅)
    js手撕代码
    Flink从Kafka写入mysql
    windows临时安装solr
    Havoc插件编写
    区间预测 | Matlab实现CNN-ABKDE卷积神经网络自适应带宽核密度估计多变量回归区间预测
    linux如何使用docker建立gitlab-runner
  • 原文地址:https://blog.csdn.net/sinat_41858359/article/details/132714601