码迷,mamicode.com
首页 > 其他好文 > 详细

第二十九节,装饰器

时间:2016-08-01 17:34:21      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

装饰器简介

装饰器,用于装饰某个函数,或者方法,或者类
装饰可以用于某个函数或者方法或者类在执行之前或者执行后做某些操作,也可以理解为,为某个函数或者方法或者类添加功能
好处:是不用改变原来的函数,就可以给原来的函数添加功能
方法:
1,定义一个函数,里面传一个值用于接收被装饰函数(叫做装饰器函数)
2,在装饰器函数里定义一个函数(叫做装饰器功能函数)来写添加功能和执行被装饰函数
3,在装饰器功能函数return返回被装饰函数给装饰器功能函数,并且在装饰器函数return返回装饰器功能函数给装饰器函数

4,在被装饰函数上面写上 @装饰器函数名 就可以调用执行装饰器函数

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#装饰器函数
def zh(sh):
    def zhshi():    #装饰器功能函数
        print("在执行被装饰函数前添加功能")
        r =  sh()   # 执行装饰器函数接收到的被装饰函数,也就是执行被装饰函数
        print("在执行被装饰函数后添加功能")
        return r    #将被装饰函数执行的结果返回给装饰器功能函数
    return zhshi    #将装饰器功能函数返回给装饰器函数

@zh     # @zh 的意思是执行装饰器函数,并且将被装饰的函数名,当做参数传给装饰器函数,并且将装饰器函数的返回值重新赋值给被装饰的函数
#被装饰函数
def f1():
    print("f1被装饰函数功能")

#执行f1函数
f1()
# 在执行被装饰函数前添加功能
# f1被装饰函数功能
# 在执行被装饰函数后添加功能

技术分享

第二十九节,装饰器

标签:

原文地址:http://www.cnblogs.com/adc8868/p/5726253.html

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