目录:

     返回顶部

1、装饰器的作用

  1. 装饰器作用:本质是函数(装饰其他函数)就是为其他函数添加其他功能

  2. 装饰器必须准寻得原则

    1)不能修改被装饰函数的源代码
    2)不能修改被装饰函数的调用方式

  3.实现装饰器知识储备

    1)函数即“变量”
    2)高阶函数
    3)嵌套函数 高阶函数+潜逃函数=》装饰器

2、使用高阶函数模仿装饰器功能

    1)定义:把一个函数名当做实参传给另一个函数
    2)返回值中包含函数名
    3)下面使用高阶函数虽然可以实现装饰器的一些功能,但是违反了装饰器不能改变调用方式的原则,
         以前使用bar()现在将调用方式改编成了test1(bar)就是将bar的函数名当做变量传给了test1()

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import time

def timer(func):
    start_time = time.time()
    func()
    print '函数执行时间为', time.time() - start_time

def test():
    print '开始执行test'
    time.sleep(3)
    print 'test执行结束'


timer(test)
'''
开始执行test
test执行结束
函数执行时间为 3.00332999229
'''
改变了调用方式

相关文章: