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

python学习笔记:装饰器2

时间:2017-09-22 19:10:24      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:装饰器   功能   参数   输入参数   对象   返回   div   log   代码   

python的装饰器本质是函数,为了不改变装饰目标函数内部代码而增加额外功能而存在

直接举例:

import datetime
def func_name(func):#定义一个装饰函数,接受一个函数对象作为参数(也就是被装饰的函数)
    def wrap():#包装函数
        print("Function name:%s"%(func.__name__))
        func() #执行目标函数
    return wrap  #返回包装函数
@func_name      #等于 func_time = func_name(func_time)
def func_time():   #目标函数
    print(datetime.datetime.now())
func_time()
#执行结果:
Function name:func_time
2017-09-22 17:25:30.622356
总结
1.定义一个装饰器函数,此函数会接受函数对象作为输入参数,以确保能执行其功能
2.在装饰器函数内定义一个和目标函数参数列表一致的包装函数,返回值(包装函数),同时添加欲追加的工作量(甚至彻底替换掉目标函数)
3.装饰器函数返回值设置为包装函数
4.把目标函数对象传递给装饰器函数去执行,返回值(包装函数)赋值到目标函数名上,最后以目标函数之名调用包装函数

 

python学习笔记:装饰器2

标签:装饰器   功能   参数   输入参数   对象   返回   div   log   代码   

原文地址:http://www.cnblogs.com/wenwei-blog/p/7576138.html

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