装饰器的概念与意义
装饰器是Python特有的一大特色,要学习并入门Python,装饰器是一道不得不跨越的坎。装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。
定义一个闭包,再定义一个变量来承接内部地址不然没法调用。
def fun():
print("函数可以当成一参数")
def outer(f):
def inner():
f()
print("我是内部函数")
return inner
demo=outer(fun)
demo()
def outer(f):
def inner():
f()
print("我是内部函数")
return inner
@outer
def fun():
print("函数可以当成一参数")
fun()
两者都运用了闭包,但第二个采用了装饰器。
装饰器的本质就是一个闭包函数,作用是在不修改原函数及其调用方法的情况下对原函数功能进行扩展。
格式为:@装饰器名称
def outer(f):
def inner(ca):
print("***********")
f(ca)
print("*************")
return inner
@outer
def ych(name):
print("{}的演唱会".format(name))
ych("刘德华")
在原函数的基础上,用******装饰原函数。