装饰器一直弄不弄,怎么办?
装饰器这节,从看书,看视频,看帖子还是不懂啊。。。求大神帮帮忙,应该要怎么理解才好呢
装饰器这节,从看书,看视频,看帖子还是不懂啊。。。求大神帮帮忙,应该要怎么理解才好呢
2015-09-08
教程的例子有点复杂,给你看个简单的:
# -*- coding: utf-8 -*- def deco(func): #装饰器函数,用来重新定义func print 'deco() called' #打印:调用装饰器函数 func() #调用原函数 return func @deco def myfunc(): #原函数定义 print ' myfunc() called.'
输出结果:
deco() called myfunc() called.
不用@,也可以这样调用装饰器函数:
def myfunc(): print ' myfunc() called.' myfunc=deco(myfunc) #将原myfunc函数传入装饰器函数,生成新的myfunc函数
装饰器函数就是对原函数进行改造,重新使用,但原函数定义不变,仍可以直接调用
myfunc() #直接调用
结果:
myfunc() called.
举报