整理Python装饰器

需要理解的三个方面:
1、函数即"变量“
2、高阶函数
    a 把函数名当做实参传给另一个函数(在不修改被装饰函数源代码的情况下进行功能扩展)
    b 返回值中包含函数名(不修改函数的调用方式)

3、嵌套函数:函数里面用def声明另一个函数 


高阶函数+嵌套函数=》装饰器

一、未使用装饰器:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
def timmer(func):
    def deco(*args,**kwargs):
        time_start = time.time()
        func(*args,**kwargs)
        time_end = time.time()
        print('耗费时间——%s' % (time_end-time_start))
    return deco
def test1():
    time.sleep(1)
    print('test 1')
test1 = timmer(test1)
test1()

返回:

test 1
耗费时间——1.0010290145874023

二、使用装饰器代码如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
def timmer(func):
    def deco(*args,**kwargs):
        time_start = time.time()
        func(*args,**kwargs)
        time_end = time.time()
        print('耗费时间——%s' % (time_end-time_start))
    return deco
@timmer
def test1():
    time.sleep(1)
    print('test 1')
#test1 = timmer(test1)
test1()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值