python装饰器的学习笔记三

来源:互联网 发布:javascript动态效果图 编辑:程序博客网 时间:2024/06/11 06:01
#coding:utf-8'''装饰器实质就是闭包的使用'''def deco(func):    def in_deco(x,y):        print "in_deco"        func(x,y)    print "call deco"    #如果这里不显示返回的话,默认是None    return in_deco'''在还没有使用@deco来装饰bar函数时,bar函数指向它自己的函数体,当我们使用了deco来进行装饰后,解释器执行到@deco的时候,做两件事:1、把bar函数当参数,调用deco函数2、把deco函数的返回值赋值给bar,此时bar就指向in_deco的引用当我们再次调用bar函数时,其实我们是在调用in_deco函数,在in_deco调用过程中我们又调用了bar原来自己的函数体的语句'''@deco    def bar(x,y):    print "in bar:",x+y    print type(bar)bar(1,2)    

0 0
原创粉丝点击