给初学者引入装饰器的概念:
举例:有一个函数:
def fn():
print("这是fn函数")
fn()
- 现在希望函数可以在执行前,打印开始执行,结束后打印执行结束
我们可以直接通过修改函数中的代码来完成这个需求,但是会产生以下一些问题:
①如果要修改的函数过多,修改起来会比较麻烦
②并且不方便后期的维护
③并且这样做会违反开闭原则(OCP)
o: OPEN
c: CLOSE
p: 原则
程序的设计,要求开放对程序的扩展,要关闭对程序的修改
- 这个时候我们要在不修改原函数内代码的情况下进行扩展,只需要做一件事,我们只需要根据我们现有的函数来构建一个新的函数:
def fn2():
print('开始执行~~~')
fn()
print('执行结束~~~')
fn2()
在另一篇中有具体装饰器的代码举例:Python装饰器