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