廖大博客学习笔记
最近见天一直在看廖大的Python教程,却发现很多基础看着很简单,但却不会应用,归根结底还是因为理解不到位,故而又将教程学了一遍,并将自己的理解记录一下,也方便后面查阅。由于没有相关编程基础,有些理解可能是错的,敬请批评指正。
想深入具体学习廖大博客请移步廖雪峰的官方网站
装饰器
所谓装饰器,就是在不对原函数进行大的改动的情况下而达到扩展函数功能的目的。比如:
已存在一函数FA(),该函数分别在N个位置被调用,现在如果想记录函数FA()的调用情况,可在FA()函数中加入日志代码,此时的工作量不会太大。
如果类似地存在函数FB()、FC()……都需要记录日志的话,此时如果再一个个函数去添加代码的话工作量将会比较大,因此可用装饰器对这一过程进行抽象。
import functools
def log(text):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kw):
print ('%s: %s starting...' % (text, func.__name__))
func(*args, **kw)
return wrapper
return decorator
然后, 在FA()、FB()、FC()……等函数代码前加上一句代码即可:
@log('Function A')
def FA():
pass
@log('Function B')
def FB():
pass
@log('Function C')
def FC():
pass