在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()
结果
时间: 2024-10-29 10:46:44