![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
流畅的python
python的高级特性
垃圾攻城狮
随缘佛性的垃圾攻城狮
展开
-
流畅的python-高级篇-协程asyncio
asyncio基本概念原创 2021-03-17 10:18:54 · 436 阅读 · 0 评论 -
设计模式-行为型-模板方法模式
文章目录模板方法模式概述对象适用场景例子模板方法模式概述定义操作中的算法骨架,而将一些步骤延迟到子类实现,使得一个子类不改变算法的结构即可重新定义算法的特定步骤对象抽象类:定义抽象的原子操作(钩子操作);实现一个模板方法作为算法骨架具体类:实现原子操作适用场景一次性实现算法的不变部分各个子类中的公共行为应该被提取出来并集中到一个公共父类中避免代码重复控制子类扩展例子"""设计一个windows程序,桌面开始,绘制,结束"""from abc import ABCM原创 2021-02-28 15:41:15 · 130 阅读 · 2 评论 -
设计模式-行为型-策略模式
文章目录策略模式概述对象例子优点缺点策略模式概述定义一系列算法,把它们一个个封装起来,并且使他们可以相互替换,使得算法可以独立于使用它们的客户而变化对象抽象策略具体策略上下文例子"""策略意图: 定义一系列算法,封装起来,可以相互替换"""from abc import ABCMeta, abstractmethodclass Stategy(metaclass=ABCMeta): @abstractmethod def execute(self, d原创 2021-02-28 14:28:08 · 94 阅读 · 0 评论 -
设计模式-行为型-观察者模式(发布订阅模式)
文章目录责任链模式概述对象适用场景例子优点责任链模式概述定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖他的对象都得到通知并自动更新。又称发布订阅模式对象抽象主题(Subject)具体主题(ConcreteSubject)——发布者抽象观察者(Observer)具体观察者(ConcreteObserver)——订阅者适用场景当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这两者封装在两个独立对象中以使他们可以独立的改变和复用当对一个对象的改变需原创 2021-02-26 14:29:27 · 100 阅读 · 0 评论 -
设计模式-行为型-责任链模式
文章目录责任链模式概述对象例子优点责任链模式概述使得多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合度。这些对象连接成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止对象抽象处理者(Handler)具体处理者(ConcreteHandler)客户端(Client)例子class CPU: def run(self): print("CPU run...") def stop(self): print("CPU原创 2021-02-22 13:31:30 · 68 阅读 · 0 评论 -
设计模式-结构型-外观模式
文章目录组合模式概述对象例子优点组合模式概述为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口是的这一子系统更容易使用对象外观(facade)子系统类(subsystem classes)例子class CPU: def run(self): print("CPU run...") def stop(self): print("CPU stop...")class Disk: def run(se原创 2021-02-19 13:29:31 · 67 阅读 · 0 评论 -
流畅的python-问题篇-取余问题
文章目录python取余问题现象解析python取余问题现象在正数与负数对10取余的时候,会发现与我们的预期不同,按照我们的理解与认知,两者计算的值应该都为212%10 # 2-12%10 # 8解析python与其他语言一样用到的取余公式为余数=除数−被除数∗商余数 = 除数-被除数*商余数=除数−被除数∗商问题出在商的计算,公式中商的计算为向下取整12//10 # 1-12//10 # -2-12//-10 # 112//-10 # -2针对自己的业务逻辑加原创 2021-02-18 17:35:49 · 191 阅读 · 2 评论 -
流畅的python-规范篇-项目规范
文章目录项目规范包和依赖静态文件配置文件与数据项目目录结构项目规范包和依赖如无特殊情况,项目的包管理器一律使用pip项目根目录下必须包含requirements.txt文件,作为项目依赖显示声明文件所有依赖都必须显示声明,禁止隐式依赖依赖声明文件中不应该包含项目中没有用到的依赖建议在开发中使用virtualenv做依赖隔离,便于使用pip freeze自动生成静态文件配置文件与数据如框架无特殊规定,配置文件应放置于项目根目录下的config文件夹中配置文件在部署、预发布、生转载 2021-02-18 15:13:07 · 218 阅读 · 0 评论 -
流畅的python-高级篇-偏函数
文章目录偏函数概念例子优点偏函数概念函数在执行时,要带上所有必要的参数进行调用。但是,有时参数可以在函数被调用之前提前获知。这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用引入如下:from functools import partial例子如下是偏函数例子: 实现取余函数from functools import partialdef mod(n, m): return n % m# 1mod_by_100 = partial(mod原创 2021-02-18 14:38:34 · 1191 阅读 · 8 评论 -
设计模式-结构型-组合模式
文章目录组合模式概述对象适用场景例子优点组合模式概述将对象组合成树形结构以表示“部分和整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性对象抽象组件(Component)叶子组件(Leaf)复合组件(Composite)客户端(Client)适用场景表示对象的“部分与整体”层次结构希望用户忽略组合对象与单个对象的不同,用户统一的使用组合结构中的所有对象例子# 假设存在多个图形,并且可以通过基本图形组合成复合图形from abc import AB原创 2021-02-15 23:24:16 · 76 阅读 · 0 评论 -
设计模式-结构型-代理模式
文章目录代理模式概述对象适用场景例子优点代理模式概述为其他对象提供一种代理以控制对这个对象的访问对象抽象实体(Subject)实体(RealSubject)代理(Proxy)适用场景远程代理:为远程对象提供代理虚代理:根据需要创建很大的对象保护代理:控制对原始对象的访问,用于对象有不同访问对象时例子# 假设我们要进行不同颜色的形状绘制时,我们通常的 # 做法是通过继承的方式分别对不同形状与颜色组合实 # 现类的方式,例如红色矩形,红色矩形继承矩形,矩# 形继承原创 2021-02-10 11:25:10 · 158 阅读 · 0 评论 -
设计模式-结构型-桥模式
文章目录桥模式概述对象适用场景例子优点桥模式概述将一个事物的两个维度分离,使其可以独立的变化对象抽象(Abstraction)细化抽象(RefindAbstraction)实现者(Implementor)具体实现者(ConcreteImplementor)适用场景当事物有两个维度上的表现, 并且在每个维度都有可能扩展时例子# 假设我们要进行不同颜色的形状绘制时,我们通常的 # 做法是通过继承的方式分别对不同形状与颜色组合实 # 现类的方式,例如红色矩形,红色矩形继原创 2021-02-06 15:19:15 · 121 阅读 · 0 评论 -
flask-源码-run
run下图为flask 执行 app.run()时的执行过程,并且当接收到请求时__call__的执行流程,flask的请求执行过程可以参照我写的 https://blog.csdn.net/DALAOS/article/details/113566518 request 执行流程如果和大家理解有出入可以私信我,来讨论正确流程#mermaid-svg-j3rGyrupTFcjlmZu .label{font-family:'trebuchet ms', verdana, arial;font-fa原创 2021-02-05 14:50:33 · 142 阅读 · 2 评论 -
设计模式-结构型-适配器模式
文章目录适配器模式概述对象实现方式适用场景例子优点适配器模式概述将一个类的接口转换成需要的另一个接口。适配器模式使的原本由于接口不兼容而不能一起工作的类可以一起工作对象目标接口(target)待适配的类(Adaptee)适配器(Adapter)实现方式类适配器: 使用多继承对象适配器:使用组合适用场景想使用一个已存在的类,他的接口不符合要求想使用一些存在的子类,但不可能对每一个子类化以匹配他们的接口,对象适配器可以适配他的父类接口例子from abc impor原创 2021-02-04 14:11:31 · 176 阅读 · 0 评论