1 什么是闭包函数
- 1 本身是一个函数,参数是函数,返回值是函数
- 2 和java做对比,就是spring里面的aop的功能,aop就是功能的扩展,就是一个动态代理
总结:闭包函数就是aop功能,就是增强自己函数的功能
2 什么是语法糖
就是简化代码,和lamabda表达式一样,用更少的代码,实现更复杂的功能
3 什么是装饰器
之前是通过闭包的形式,对我们自己写的方法的功能进行扩展;
但是还得自己写对应的增强的方法,每次都得创建增强方法的对象,能不能和java的注解一样,我们只要在一个函数的上面写一个注解,那么就可以增强功能;
总结:就是通过语法糖对闭包进行简化
- 语法糖+闭包====装饰器
4 装饰器写法
@闭包函数名
5 装饰器例子
定义一个装饰器
def decorator1(main_func):
def wrapper(request,page): 这个参数需要和主函数的参数一样
if request.session.get('username'):
return main_func(request,page)
else:
return HttpResponse('login')
return wrapper
使用装饰器
@A
@B
def index(request):
return HttpResponse('index')
6 一个函数上有多个装饰器,先执行哪个
使用装饰器
@A
@B
def index(request):
return HttpResponse('index')
先执行B,之后执行A
也就是越靠近函数,越先执行
本文深入探讨了Python中的闭包函数,将其比喻为类似Java Spring AOP的功能,允许函数功能扩展。接着介绍了语法糖的概念,即简化代码的手段,如lambda表达式。装饰器作为闭包和语法糖的结合,提供了一种更简洁的方式来增强函数功能,类似于Java的注解。文章通过示例展示了装饰器的定义和使用,并解释了当一个函数上存在多个装饰器时,它们的执行顺序是从下到上,即最后定义的装饰器最先执行。
606

被折叠的 条评论
为什么被折叠?



