博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python装饰器的简单使用
阅读量:6690 次
发布时间:2019-06-25

本文共 1770 字,大约阅读时间需要 5 分钟。

  • 装饰器是拓展原先函数的一种函数
from django.test import TestCase# Create your tests here.import time复制代码
  • 简单的装饰器
# def deco(func):#     def wrapper():#         startTime = time.time()#         func()#         endTime = time.time()#         msecs = (endTime - startTime)*1000#         print('time is %d ms' %msecs)#     return wrapper# @deco# def func():#     print('hello')#     time.sleep(2)#     print('world')复制代码
  • 带有参数的装饰器
# def deco(func):#     def wapper(a,b):#         startTime = time.time()#         func(a,b)#         endTime = time.time()#         msecs = (endTime-startTime)*1000#         print('用时----- %d ms' %msecs)#     return wapper## @deco# def func(a,b):#     print('需要执行的函数 :')#     time.sleep(1)#     print('执行结果 %d' %(a*b))复制代码
  • 多个装饰器
def deco1(func):    def wapper(*args,**kwargs):        print('第一个装饰器')        startTime  = time.time()        func(*args,**kwargs)        endTime = time.time()        allTime = (endTime-startTime)*1000        print('总共用时',allTime)    return wapperdef deco2(func):    def wapper(*args, **kwargs):        print('第二个装饰器')        startTime = time.time()        func(*args, **kwargs)        endTime = time.time()        allTime = (endTime - startTime) * 1000        print('总共用时', allTime)    return wapper@deco1@deco2def func(a,b):    print('函数执行')    time.sleep(3)    print('结果是 %d'%(a*b))    复制代码
  • 带返回值的装饰器
def deco1(func):    def wapper(*args,**kwargs):        print('装饰器')        start_Time = time.time()        str1 = func(*args,**kwargs)        end_Time = time.time()        all_time = (end_Time-start_Time)*1000        print('总共用时',all_time)        return str1    return wapper@deco1def func(a,b):    print('aaaaaaaaaaaaa')    time.sleep(2)    print('bbbbbbbbbbb')    return a+b    复制代码
if __name__ == '__main__':    func(1,10)复制代码

转载地址:http://bueao.baihongyu.com/

你可能感兴趣的文章
广搜——三维迷宫
查看>>
安装OpenCV3.1 与VS2015配置主要步骤
查看>>
mian函数接受两个实参, 连成s…
查看>>
mssql timeout 超时时间已到
查看>>
Linux系统——C/C++开发工具及环境搭建
查看>>
LVS负载均衡
查看>>
1.4(Spring学习笔记)Spring-JDBC基础
查看>>
[研究笔记]n个骰子得到点数和的概率分布
查看>>
让你写的代码“说话”
查看>>
C#基础 常用语&数据类型定义&类型转换
查看>>
字典的操作
查看>>
关于使用Html5 canvas、 map、jquery构造不规则变色点击区域 热点区域
查看>>
Mining Massive Data Sets PPT
查看>>
python迭代器和生成器
查看>>
Android 2.3预计下周发布 十大惊“.NET研究”喜不容错过
查看>>
艾伟:WCF从理论到实践(15):响应变化
查看>>
艾伟也谈项目管理,项目经理的思维批判
查看>>
一起谈.NET技术,Sharepoint 究竟能为客户做些什么
查看>>
解决ftp登录问题:500 OOPS: cannot change directory:/home/xxx 500 OOPS: child died
查看>>
使用IEDScout校验61850出错记录及解决方案
查看>>