pyhon学习有一段时间了,今天又碰到了Django的中间件,其实Django里面的中间件,就是用了多层的装饰器,然后去了解了一下多层装饰器,感觉有写东西差不多快忘了,也可能前面没学好。 现在重新记录,学习下。 普通装饰器: 其实我前面多层装饰卡住就是这里。 装饰器的本质就是一个函数,当你写好装饰器 ...
分类:
编程语言 时间:
2019-09-21 21:22:49
阅读次数:
85
装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等应用场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能 ...
分类:
编程语言 时间:
2019-09-21 19:04:36
阅读次数:
87
学习装饰器之前,掌握以下三点知识:1.作用域:查找变量顺序:L——E——G——Bx=10def f(): t=5 t是嵌套作用域def inner():count=7 count是局部变量,作用域local域return 12.高阶函数:1》函数名可以作为参数输入2》函数名可以作为返回值 3.闭包d ...
分类:
编程语言 时间:
2019-09-21 13:10:19
阅读次数:
73
功能函数foo()没有参数 import timedef show_time(func): def inner(a,b): #inner是个闭包函数 start = time.time () func(a,b) end = time.time () print ('spend %s'%(end-st ...
分类:
其他好文 时间:
2019-09-21 13:03:41
阅读次数:
85
import timedef logger(flag): def show_time(func): def inner(*args,**kwargs): #inner是个闭包函数 start = time.time () func(*args,**kwargs) end = time.time () ...
分类:
其他好文 时间:
2019-09-21 12:36:38
阅读次数:
82
编程的一个原则:开放封闭原则,对源代码的修改封闭,在源代码不变的情况下,对扩展新功能开放 import timedef foo(): print('foo....') time.sleep(2)def show_time(func): start = time.time () func() end ...
分类:
编程语言 时间:
2019-09-21 12:35:30
阅读次数:
89
设计模式 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、 ...
分类:
其他好文 时间:
2019-09-19 12:27:43
阅读次数:
87
Python和Go的区别?以及各自的优势? 列表生成式的好处? search和match的区别? 什么是贪婪匹配? 面向对象中的 方法的作用? 什么是元类?【不好】 super的作用?【不好】 什么是偏函数? 装饰器的应用场景?什么是单例模式? staticmethod和classmethod的区别 ...
分类:
其他好文 时间:
2019-09-17 22:54:32
阅读次数:
290
博客目录 python基础部分 函数 初识函数 函数进阶 装饰器函数 迭代器和生成器 内置函数和匿名函数 递归函数 常用模块 常用模块 模块和包 面向对象 初识面向对象 面向对象进阶 网络编程 网络编程 并发编程 操作系统介绍 进程 线程 协程 数据库部分 初识数据库 mysql表操作 mysql记 ...
分类:
编程语言 时间:
2019-09-17 14:46:58
阅读次数:
118
1. 作用 将类方法转换为类属性,可以用 . 直接获取属性值或者对属性进行赋值 2.实现方式 使用property类来实现,也可以使用property装饰器实现,二者本质是一样的。多数情况下用装饰器实现。 score()方法上增加@property装饰器,等同于score= property(fge ...
分类:
编程语言 时间:
2019-09-17 13:26:29
阅读次数:
103