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

Python中装饰器的用法

时间:2017-08-19 14:08:57      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:auth   地址   知识   python   running   close   其他   用法   装饰器   

  1. 定义:
    1. 装饰器本身就是一个函数
    2. 为其他函数提供附加功能
      1. 不改变源代码
      2. 不改变原调用方式
    3. 装饰器=高阶函数+嵌套函数
  2. 知识点:
    1. 函数本身就是一个变量(意味着可以被复制给一个变量:test=test(1) )
    2. 高阶函数
      1. 把函数名当成一个实参传递给另一个函数func(test1) (不改变源代码的前提下添加代码)
      2. 返回值中包含函数名return deco (不改变函数的调用方式)
    3. 嵌套函数:函数中加入新的函数def func1(): def func2():
  3. 典型结构:   
技术分享
1 def func1(test):
2     def deco():
3         #progress
4     return deco#返回函数的地址,达到不改变调用方式的目的
View Code

完整程序:

技术分享
# __Author__Panda-J____

import time


def timer(func):  # for test1 & 2
    start_time = time.time()
    func()  # run func and test its running time
    end_time = time.time()
    print("this func running time is %s" % (end_time - start_time))
return func

@timer
def test1():
    time.sleep(1)
    print("this is test1")


@timer
def test2():
    time.sleep(1)
    print("this is test2")


test1()
test2()
View Code

 

Python中装饰器的用法

标签:auth   地址   知识   python   running   close   其他   用法   装饰器   

原文地址:http://www.cnblogs.com/BigJ/p/7396144.html

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