1.requests库
https://blog.csdn.net/weixin_45568391/article/details/111479470
2.celery的delay的参数
3.redis支持几种类型
str,list,set,zset,hash
4.线程安全
函数参数用值传递而不是引用传递
不用静态变量和全局变量(不写闭包)
4.1多级缓存
5.python2与3的区别
6.CPython的全局解释器锁
https://www.cnblogs.com/SuKiWX/p/8804974.html
1.python多线程只对I/O密集型应用有用
2.CPython各版本在优化加锁和释放锁的策略
– 将切换颗粒度从基于opcode计数改成基于时间片计数
– 避免最近一次释放GIL锁的线程再次被立即调度
– 新增线程优先级功能(高优先级线程可以迫使其他线程释放所持有的GIL锁)
7.python gc机制
https://wujincheng.blog.csdn.net/article/details/105775608
Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题,并且通过“分代回收”(generation collection)以空间换取时间的方式来进一步提高垃圾回收的效率
8.设计模式
8.1单例模式
8.2工厂模式
8.3建造模式
8.4适配器模式
8.5修饰器模式
8.6外观模式
外观模式又叫做门面模式。在面向对象程序设计中,解耦是一种推崇的理念。但事实上由于某些系统中过于复杂,从而增加了客户端与子系统之间的耦合度。例如:在家观看多媒体影院时,更希望按下一个按钮就能实现影碟 机,电视,音响的协同工作,而不是说每个机器都要操作一遍。这种情况下可以采用外观模式,即引入一个类对子系统进行包装,让客户端与其进行交互。
外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为 门面模式,它是一种对象结构型模式。
9.python高级特性
9.1迭代器与生成器
- 通过实现迭代器协议对应的__iter__()和next()方法,可以自定义迭代器类型。对于可迭代对象,for语句可以通过iter()方法获取迭代器,并且通过next()方法获得容器的下一个元素。
- 像列表这种序列类型的对象,可迭代对象和迭代器对象是相互独立存在的,在迭代的过程中各个迭代器相互独立;但是,有的可迭代对象本身又是迭代器对象,那么迭代器就没法独立使用。
- itertools模块提供了一系列迭代器,能够帮助用户轻松地使用排列、组合、笛卡尔积或其他组合结构。
- 生成器是一种特殊的迭代器,内部支持了生成器协议,不需要明确定义__iter__()和next()方法。
- 生成器通过生成器函数产生,生成器函数可以通过常规的def语句来定义,但是不用return返回,而是用yield一次返回一个结果。
# 下面是一个生成器 def generator(n): a, b = 0, 1 for i in range(n): a, b = a+b, a yield a # 下面是一个迭代器 class Fibonacci: def __init__(self, n): self.n = n def __iter__(self): self.a, self.b = 0, 1 return self def __next__(self): if self.n>0: self.a, self.b = self.a+self.b, self.a self.n -=1 return self.a raise stoplteration for i in Fibonacci(6): print(i)
9.2 上下文管理器
class open_file:
def __init__(self, path, mode):
self.path=path
self.mode=mode
self.file=None
def __enter__(self):
self.file=open(path, mode)
def __exit__(self):
if not self.file:
self.file.close()
9.3 装饰器
def decoration(func):
def warp():
....
func()
....
return warp
10.mysql的搜索引擎
11.mysql的锁
12.六大设计原则
12.1开闭原则
12.2迪米特法则
12.3里氏替换法则
12.4依赖倒置原则
12.5借口隔离原则
12.6单一职责原则