如果你学了一段时间Python,那么你一定听说过装饰器。
装饰器顾名思义,就是用来装饰函数的,给函数做一个漂亮的包装层来做一些有用的处理。
让我们来一步一步的剥开包装
(1)python 中函数即对象,函数名代表着指向函数对象的指针,所以它可以这样操作
def a():
return 'hello world'
b = a
b() #输出 hello world
理解这一步是基础。
(2)函数作为参数与返回值
既然函数是对象,当然它既可以作为参数,也可以作为返回值
def c(a):
return a
d=c(a)
d() # 输出 hello world
而我的装饰器,就是传入一个函数(被包装的函数),经过包装函数的包装,然后返回包装函数。
在这里,包装函数返回的是最后的结果。一般情况下你见到的会是
return func(*args,**kwargs)
这里就是返回被包装函数执行结果。
(3)简单的示例
让我们来想个简单的例子,你现在有一个计算的函数,我们想在每次计算的时候检查输入数据的类型,并且做出相应的反馈。
明白了装饰器的构建,接下来我们要分析一下其他几种情况
网友评论