关于如何制作python 的装饰器
下面展示一些 内联代码片
。
#--装饰器-----------
#ocp原则 开发的时候开放对程序的扩展 关闭对程序的修改
#需求 希望在不修改原函数的情况下对函数进行扩展 就需要装饰器
#拓展该简易函数 便是对现有的函数创建一个新的函数
def add(a,b):
s=a+b
return s
#通用的装饰器代码编写
#创建一个函数 让这个函数帮助我们生成函数
def begin_end(orign):
'''
对其他函数进行扩展
使其它函数在执行前与结束后打印语句
每次调用都会产生新函数
orgin指的是被拓展的函数
'''
def new_function(*args,**kwargs):#装包成字典
print("执行开始")
#占位行 无意义
#调用被拓展的函数
r = orign(*args,**kwargs)#传参
print("执行结束")
#闭包后 外界看不见
return r
#返回新函数
return new_function
#因为返回值是一个装饰后的新函数 所以我们需要接受这个新函数并且传参给这个函数,打印出结果就是被装饰的
#例子如下
f2=begin_end(add)
print(f2(1,2))