[Python]理解一下装饰器

在oop中需要通过继承来实现,而python除了通过继承来实现装饰模式外,直接在语法层次支持装饰器
 
下面通过一个简单的示例来理解一下Python的装饰器
 
这里我将设计一个log类,在编写代码的时候可能会遇到这样的问题,需要记录下所有的操作,这个需求该怎么实现呢?
#python 装饰器
def log(text):
    def decorator(func):
        def wapper(*args):
            print('%s %s:'%(text,func.__name__))
            return func(*args)
        return wapper
    return decorator

 

 
来仔细分析一下这个代码,log()函数接受一个文本信息,返回一个decorator函数,然后这个函数的作用就是接收一个新函数,并在调用函数前打印一些信息;

@log('获取时间')
def gettime()
    print('2017-4-15 11:11:11')

now = gettime()
now()

 

结果


posted @ 2017-04-15 11:50  dannyjones  阅读(132)  评论(0)    收藏  举报