随笔分类 -  Python

摘要:单例模式及实现单例模式的方法 一 单例模式 "单例模式(Singleton Pattern)"是一种常用的软件设计模式,该模式的主要目的是确保"某一个类只有一个实例存在"。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。 比如,某个服务器程序的配置信息存放在一个文件中,客户端通 阅读全文
posted @ 2021-06-25 15:19 越关山 阅读(185) 评论(0) 推荐(0)
摘要:面向对象的魔法方法 一 类型判断、反射与importlib 1 类型判断 1.1 issubclass "issubclass(x, y)" 这个内置函数可以帮我们判断x类是否是y类型的子类。 ​ 官方解释:"issubclass(class, classinfo)"`如果 class 是 clas 阅读全文
posted @ 2021-06-25 15:16 越关山 阅读(67) 评论(0) 推荐(0)
摘要:并发编程之携程 一 协程介绍 1 单核下并发的本质及切换任务的两种情况 切换的本质是:**切换+保存状态** #### 1.切换任务的情况一: 任务发生阻塞。(可以提升效率,因为充分利用I/O阻塞的时间。) #### 2.切换任务的情况二: 占用CPU时间过长,或有一个优先级更高的程序替代了它。(不 阅读全文
posted @ 2021-06-25 15:15 越关山 阅读(219) 评论(0) 推荐(0)
摘要:并发编程之多线程 一 同步锁 1 两个注意点 1).线程抢的是GIL锁,GIL锁相当于执行权限,拿到执行权限后才能拿到互斥锁Lock,其他线程也可以抢到GIL,但如果发现Lock仍然没有被释放则阻塞,即便是拿到执行权限GIL也要立刻交出来。 2).join是等待所有,即整体串行,而锁只是锁住修改共享 阅读全文
posted @ 2021-06-25 15:12 越关山 阅读(58) 评论(0) 推荐(0)
摘要:并发编程之线程 一 什么是线程 计算机相当于大工厂,工厂里有一个个车间(进程) ,有很多人(线程) 干不同的事。 **进程是资源分配的最小单位,线程是CPU调度的最小单位。每一个进程中至少有一个线程。** 线程的开销更小,更轻量级。 二 开启线程的两种方式 1 通过函数的方式 # 第一种,通过函数 阅读全文
posted @ 2021-06-25 15:10 越关山 阅读(44) 评论(0) 推荐(0)
摘要:进程基础及多进程的使用 一 进程理论知识 1 操作系统的作用 1).隐藏丑陋复杂的硬件接口,提供良好的抽象接口;应用程序员有了这些接口后,就不用再考虑操作硬件的细节,专心开发自己的应用程序即可。 2).管理、调度进程,并且将多个进程对硬件的竞争变的有序。 2 多道技术 2.1 产生背景: 针对单核, 阅读全文
posted @ 2021-06-25 15:08 越关山 阅读(255) 评论(0) 推荐(1)
摘要:并发编程之进程间通信、生产者消费者模型 一 进程调度 (1) 先来先服务 (2) 短作业优先 (3) 时间片轮转 (4) 多级反馈队列 ​ 多级反馈队列调度算法即能使高优先级的作业得到响应又能使短作业(进程)迅速完成。 二 僵尸进程与孤儿进程 (1) 僵尸进程 进程结束了,资源还没来得及回收完成。 阅读全文
posted @ 2021-06-25 15:04 越关山 阅读(76) 评论(0) 推荐(0)
摘要:元类metaclass 一 什么是元类 #### python中一切皆是对象。以如下代码为例分析: # 元类=》OldboyTeacher类=》obj class OldboyTeacher(object): school = 'oldboy' def __init__(self, name, ag 阅读全文
posted @ 2021-06-25 15:00 越关山 阅读(49) 评论(0) 推荐(0)
摘要:猴子补丁、垃圾回收机制 一 猴子补丁 1 什么是猴子补丁 属性在运行时的动态替换,叫做猴子补丁(Monkey Patch) 。 猴子补丁的核心就是用自己的代码替换所用模块的源代码。 2 猴子补丁的功能(一切皆对象) 拥有在模块运行时替换的功能,例如:一个函数对象赋值给另一个函数对象(把函数原本的执行 阅读全文
posted @ 2021-06-25 14:59 越关山 阅读(124) 评论(0) 推荐(0)
摘要:UDP套接字通信、socketserver并发编程 一 基于UDP的套接字通信 1 TCP与UDP协议的对比 ### 1.可靠性 #### (1) TCP协议是可靠协议 ​ 对方必须回复一个ack确认消息,才会将自己这端的数据从内存中删除。 #### (2) UDP是不可靠协议 ​ 发送一条消息就会 阅读全文
posted @ 2021-06-25 14:57 越关山 阅读(190) 评论(0) 推荐(0)
摘要:粘包问题及解决方案 一 什么是粘包问题 前提:只有TCP会发生粘包现象,UDP永远不会粘包。 粘包问题本质上就是接收方不知道消息的边界,不知道一次性该提取多少字节流用于解析消息,造成的消息解析错误问题。 二 为何么会有粘包问题 1 socket收发消息的原理之流式协议 ​ 发送端可以是1K1K的发送 阅读全文
posted @ 2021-06-25 14:55 越关山 阅读(320) 评论(0) 推荐(0)
摘要:socket编程基本流程及TCP套接字 一 socket编程基本流程 1 套接字的概念及分类 1.1 套接字是什么 套接字是一种【通信机制】,凭借这种机制,客户/服务器系统的开发工作既可以在本地单机上进行,也可以跨网络进行,Linux所提供的功能(如打印服务,ftp等) 通常都是通过套接字来进行通信 阅读全文
posted @ 2021-06-25 11:44 越关山 阅读(1151) 评论(0) 推荐(0)
摘要:上网的基本流程(网络通信原理) 一 普通URL的组成 #### 协议--域名--端口--虚拟目录--文件名 以如下url为例: `http://www.aspxfans.com:8080/news/index.asp` ### 1 协议部分 该URL的协议部分为“http:”,这代表网页使用的是HT 阅读全文
posted @ 2021-06-25 11:42 越关山 阅读(1338) 评论(0) 推荐(0)
摘要:socket编程与OSI五层协议 一 socket编程初探 1 什么是socket ​ socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,socket相当于一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的Socket 阅读全文
posted @ 2021-06-25 11:40 越关山 阅读(177) 评论(0) 推荐(0)
摘要:虚拟环境搭建及使用 一 虚拟环境的搭建 1 优点 1)、使不同应用开发环境相互独立 2)、环境升级不影响其他应用,也不会影响全局的python环境 3)、防止出现包管理混乱及包版本冲突 # 如:路飞项目用django2.0.7, 公司老项目用的1.11.9,如果都在系统解释器装,django版本需要 阅读全文
posted @ 2021-05-09 15:52 越关山 阅读(220) 评论(0) 推荐(0)
摘要:异常处理 一 什么是异常处理 ​ 异常是程序运行错误发出的信号(若未进行处理异常,则会抛出异常,程序随之终止) 。 二 异常处理的组成及异常的种类 1 异常处理的三个组成: 异常追踪信息——>具体报错的位置; 异常种类——>逻辑错误or语法错误; 异常内容——>异常的内容信息。 2 异常的两个种类: 阅读全文
posted @ 2021-05-09 15:37 越关山 阅读(495) 评论(0) 推荐(0)
摘要:面向对象之组合、多态及反射 一 组合 1 什么是组合 ​ 在一个类中以另外一个类的对象作为数据属性,称之为类的组合。即把另一个类的对象赋值给当前对象的属性。 2 为何要用组合 ​ 组合与继承都是用来解决代码的重要性问题。 ​ 不同的是,继承是一种“是”的关系,当类之间有很多相同之处,应该使用继承; 阅读全文
posted @ 2020-03-26 08:10 越关山 阅读(93) 评论(0) 推荐(0)
摘要:面向对象之继承与C3算法 一 继承介绍 1 什么是继承 继承是一种新建类的方式,新建的类称之为子类,被继承的类称之为父类、基类、超类。 python支持多继承。 #####——————————##### class ParentClass1: #定义父类 pass class ParentClass 阅读全文
posted @ 2020-03-24 22:50 越关山 阅读(139) 评论(0) 推荐(0)
摘要:面向对象之封装 一 什么是封装 ​ 从封装本身的意思去理解,封装就好像是拿一个袋子,将数据和功能一起装进去,然后将袋子封上口子。照这种逻辑看,封装='隐藏',但是封装不仅仅是隐藏。 ​ 在封装的基础上,我们可以将装到对象或者类中的属性给隐藏起来。 二 如何隐藏属性 1 隐藏属性需要注意的四个事项 1 阅读全文
posted @ 2020-03-24 22:48 越关山 阅读(227) 评论(0) 推荐(0)
摘要:面向对象编程 一 什么是面向对象编程 ​ 面向对象编程是一种编程套路,我们可以来跟面向过程编程做个对比。 1 面向过程编程 面向过程编程的核心是过程,过程指的是做事的步骤,即做事的先后顺序,基于该思想编写的程序,就相当于一条条流水线。 (1) 优点 ​ 复杂的问题流程化,进而变得简单化。 (2) 缺 阅读全文
posted @ 2020-03-24 22:47 越关山 阅读(369) 评论(0) 推荐(0)