装饰器本质上是一个工厂函数,它以函数为参数,也以函数为输出,可能通过装饰器,在不改变原有函数的情况下增加函数功能。
代码示例:
def dec(func): def wrap(): PRint "this is how I show my love" return func() return wrapdef func(): # 未加上装饰器的函数 print 'hello world!' func() # 未加装饰器,输出为“hello world!"print '~'*27 # 建一条波浪线以示区别 @dec def func(): print 'hello world!'func() # 加上装饰器,输出比原来增加一条 输出: hello world! #加装饰器前~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ this is how I show my love #加装饰器后 hello world!由示例可以看到,我们定义的func函数,原本是一个只输出”hello world!” ,但是通过装饰器装饰以后,输出内容增加了一句。
新闻热点
疑难解答