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

装饰器@decorator理解(需补充.....)

时间:2017-09-07 01:02:48      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:ret   int   ...   class   ora   理解   执行   存在   def   

def w1(fun):
    def inner1(arg):
        print("h")
        return fun(arg)

    return inner1


@w1
def w(arg):
    print(ello)

w()

理解:1、代码从上到下执行,将w1放内存,然后遇到了@w1

     2、@w1就会把w函数,当作参数放入w1中,既:fun = w,就会执行w1函数

     3、执行w1函数时,将inner1放内存,并且返回一个inner1函数名给w 既然 w = inner1

         4、此时w()函数仍然存在,与其同名的w变量(既inner1)指向新的函数inner1()

   5、继续往下执行,当遇到w()时,先执行新的w()函数(既inner()函数),打印出h

     6、在调用原始函数,打印ello

装饰器@decorator理解(需补充.....)

标签:ret   int   ...   class   ora   理解   执行   存在   def   

原文地址:http://www.cnblogs.com/ggboom/p/7487746.html

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