首页 > 编程语言 >python 装饰器示例

python 装饰器示例

时间:2023-02-20 17:55:33浏览次数:41  
标签:__ wraps name 示例 python func time logger 装饰

 1 def wrapper_log(func):
 2     """
 3     无参装饰器,也可以写成有参装饰器,True或Flase标记是否调用日志模块
 4     功能一:执行失败,打印并记录错误日志信息,定位bug
 5     功能二:记录用例执行时间
 6     """
 7 
 8     from loguru import logger
 9     from functools import wraps
10     import time
11 
12     @wraps(func)  # wraps使inner装的更像一个func
13     def inner(*args, **kwargs):
14         logger.info(f'{func.__name__}开始执行')
15         now1 = time.time()
16 
17         try:
18             func(*args, **kwargs)
19         except Exception as e:
20             logger.error(f'执行失败,失败原因:{e}')
21             # logger.exception(e)
22             raise e
23 
24         now2 = time.time()
25         logger.success(f'{func.__name__}执行成功!!!,执行用时:{now2 - now1}ms')
26         return func
27 
28     return inner
29 
30 
31 @wrapper_log
32 def test_a():
33     print(1 / 0)
34 
35 
36 if __name__ == '__main__':
37     test_a()

 

标签:__,wraps,name,示例,python,func,time,logger,装饰
From: https://www.cnblogs.com/BillBie/p/17138373.html

相关文章

  • 附录E示例-UT_DrainageSystem_2
    示例概述排水系统_2意图该UT实施IfcDistributionSystem,用于带有涵洞和开放侧沟的道路排水。 它基于故事情节bFi_IR_SLRD-DD(https://app.box.com/s/x9q3q62tcc77hdqp......
  • python--matplotlib(2)
    前言 Matplotlib画图工具的官网地址是http://matplotlib.org/Python环境下实现Matlab制图功能的第三方库,需要numpy库的支持,支持用户方便设计出二维、三维数据的图形显示,制......
  • python之路73 vue框架 vue-cli创建项目、vue项目目录介绍、es6导入导出语法、登录功
    vue-cli创建项目前端做成项目---》使用工具(vue-cli),创建vue项目,单页面应用(spa),组件开发,把xx.vue,ts,saas,less---》编译---》在浏览器中执行vue-cli创建项目开发,在项......
  • python 获取b站 个人关注列表用户信息
    前言本程序是get_bili_medal_list项目的一个子程序,用于获取个人关注列表用户信息。整体很简单,没啥东西,主要是辅助作用。数据获取完毕后,存储于data/follows.json(提前......
  • python爬虫学习——文件操作,异常处理
    文件操作'''f=open("a.txt","w")#打开一个文件,w模式(写),如果文件不存在就在当前目录下创建f.write("helloworld,iamhere")#将字符串写入文件中f.cl......
  • python 实现 短信登录 b站 并打印cookie内容
    前言本程序是get_bili_medal_list项目的一个子程序,用于大批量获取用户数据时的cookie替换。使用项目根目录运行pythonlogin_get_cookie.py,根据提示完成短信验证登录。......
  • Camunda(一)---安装和简单示例
    安装camunda资源下载:https://camunda.com/download/camunda-modeler:下载解压,打开CamundaModeler.execamunda-run:下载解压,双击start.bat然后浏览器访问:http://l......
  • Python之装饰器的使用
    1.装饰器的使用场景函数执行时间的统计输出日志信息2.装饰器实现已有函数执行时间的统计importtime#装饰器函数defget_time(func):definner():begin=ti......
  • Python语言中变量名是什么?命名规则有哪些?
    在Python程序中,变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线的组合,且不能用数字开头。那么Python语言中变量名是什么?变量的命名规则有哪些?具体内容请......
  • From C++ to Python and a little Java
    原创不意味着能得到“知识产权”。FromC++toPythonandalittleJava从C++到Python以及对Java的小观点OutputPython:printf'\n'C++:std::coutprintformat......