码迷,mamicode.com
首页 > 编程语言 > 详细

Python-装饰器

时间:2018-08-03 01:21:13      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:不能   计算   bin   附加   UNC   fun   turn   strong   装饰器   

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

装饰器:

本质是函数,(装饰其他函数)就是为其他函数添加附加功能。

(原则):1。不能修改被装饰的函数的源代码。

     2。不能修改被装饰的函数的调用方式。

 

高阶函数:

(满足以下条件之一就称之为高阶函数)

1.把一个函数名当作实参传给另外一个函数

(在不修改被装饰函数源代码的情况下为其添加功能)

2.返回值中包含函数名

(不修改函数的调用方式)

 

嵌套函数:

 

#类似于

def test1():
    def test2() 
        pass        #这种函数里面还def函数的就是嵌套


#这种在函数里面调用函数的不属于嵌套函数
def test1()
    test2()

 

 

装饰器实例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Irving

#为函数附加计算该函数运行时间的功能(装饰器)

import time

def timer(func):
    def deco():
        start_time = time.time()
        func()
        stop_time = time.time()
        print("use time:%s"%(stop_time-start_time))
    return deco

# 主要概念:函数即变量
# timer函数主要是用return来返回要修饰函数名的内存地址;(不修改函数调用方式)
# deco函数主要是用func这个形参把要修饰的函数调用进来运行;(不修改源代码)

@timer   # @timer代表着   test1 = timer(test1)
def test1():
    time.sleep(3)
    print("in the test1")
@timer
def test2():
    time.sleep(3)
    print("in the test2")

test1()
test2()

 

 

Python-装饰器

标签:不能   计算   bin   附加   UNC   fun   turn   strong   装饰器   

原文地址:https://www.cnblogs.com/Xuuuuuu/p/9410799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!