06 2019 档案
摘要:基于socketserver实现并发的socket套接字编程 并发:让服务端同时和多个客户端进行连接。使用socketserver的连接循环(并发),但是使用了自己的通信循环 服务端 客户端1 客户端2
阅读全文
摘要:基于UDP的socket套接字编程 UDP协议是无连接的,所以不会有粘包问题 服务端 客户端
阅读全文
摘要:[TOC] 粘包问题 只有TCP有粘包现象,UDP永远不会粘包 socket收发消息的原理 在TCP协议中,如服务端向客户端传输数据:发送端是两K两K的发送数据,接收端是一K一K的发送数据,发送端将多余的的数据放在缓存中,接收端在取的时候会取到两条数据的部分。造成粘包问题 在UDP协议中,服务端向客
阅读全文
摘要:[TOC] 模拟ssh远程执行命令 实现在客户端输入执行命令后,返回执行命令的信息。如输入dir,显示当前目录下的所有文件和文件夹 服务器 客户端
阅读全文
摘要:[TOC] 基于TCP协议的套接字编程 套接字 套接字有两种,分别是基于文件型和基于网络型 基于文件类型的套接字家族:AF_UNIX,unix一切皆文件,基于文件的套接字调用的就是底层的文件系统来取数据,两个套接字进程运行在同一机器,可以通过访问同一文件系统间接完成通信 基于网络类型的套接字家族:A
阅读全文
摘要:[TOC] TCP三次握手和四次挥手 三次握手建立连接 如果你要去服务端下载视频,客户端和服务端之间必须得连接,在建立连接之前,客户端和服务端都是出于关闭状态的。建立连接就是三次握手: 1. 客户端会向服务端发送一个请求,如下载视频,会有一个SYN报头 2. 服务端会接收到客户端的请求,然后会响应客
阅读全文
摘要:[TOC] OSI协议 互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),互联网由硬件和软件组成,传输数据只能传输电信号0和1,OSI协议就是把0和1从无意义的东西变成有意义的东西。。 按照功能不同,分工不同,人为的分层七层。每一层都运行不同的协议,还有人把它划成五层、四层。
阅读全文
摘要:[TOC] 网络架构 单机架构 应用领域: 单机游戏 CS架构 基于网络,应用领域: 客户端游戏 cs client客户/server服务 客户端:用户安装的软件 服务端:统一管理数据库的主机中的软件就叫做服务端,再后来服务端不只是管理数据,外加处理业务逻辑。 数据放在服务端和客户端的利与弊 服务端
阅读全文
摘要:[TOC] 单例模式 单例模式:基于某种方法实例化多次得到实例是同一个 当实例化多次得到的对象中存放的属性都一样的情况,应该将多个对象指向同一个内存,即同一个实例 减少内存占用 类内部定义静态方法实现单例模式 装饰器实现单例模式 元类实现单例模式
阅读全文
摘要:[TOC] 元类 在python中一切皆对象,name我们用class关键字定义的类本身也是一个对象,负责产生该对象的类称之为元类,即元类可以简称为类的类 元类是负责产生类的,所以我们学习元类或者定义元类的目的是:为了控制类的产生过程,还可以控制对象的产生过程 类的组成 在用class关键字定义类时
阅读全文
摘要:[TOC] \_\_call\_\_ 对象后面加括号调用时,会自动触发执行 注:构造方法的执行是由创建对象触发的,即:对象=类名();而对于\_\_call\_\_方法的执行是由对象后加括号触发的,即:对象()或者类()() \_\_str\_\_ 在打印对象的时候触发,必须要返回一个字符串 \_\
阅读全文
摘要:[TOC] isinstance和issubclass isinstance(obj,cls)检查obj是否是cls的对象,它会检查父类 type()也可以用来获取实例化出对象的类,但它不能检测父类 issubclass(sub,super)检查sub类是否是super的子类或派生类 反射(hasa
阅读全文
摘要:[TOC] 类的封装 将类的属性或方法隐藏,这些属性和方法只能在内部使用,外部无法使用。类的封装在类定义阶段就执行了,会把私有属性 变成 两个层面的封装 第一个层面 第一个层面的封装(什么都不用做):创建类和对象会分别创建二者的名称空间,我们只能用类名.或者obj.的方法去访问里面的名字,这本身就是
阅读全文
摘要:类的多态与多态性 多态 多态指的是一类事物有多种形态,如动物有多种形态:人、狗、猪 多态性 多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中一般是这儿表述多态性:向不同的对象发送同一条消息,不同的对象在接收时会产生不同的行为(即方法)。也就
阅读全文
摘要:[TOC] 菱形继承问题 在Python中子类可以同时继承多个父类,如A(B,C,D) 如果继承关系为非菱形结构,则会按照先找B这一条分支,然后再找C这条分支,最后找D这条分支的顺序直到找到我们想要的属性 如果继承关系为菱形结构,即子类的父类最后继承了同一个类,那么属性的查找方式有两种 经典类(了解
阅读全文
摘要:[TOC] 类的组合 组合就是一个类的对象具备某一个属性,该属性的值是指向另外一个类的对象 组合的好处:解决类与类之间代码冗余的问题 组合的应用 需求:假如我们需要给学生增添课程属性,但是又不是所有的学生一进学校就有课程属性,课程属性是学生选出来的,也就是说课程需要后期学生们添加进去 实现思路:如果
阅读全文
摘要:[TOC] 类的派生 派生:子类中新定义属性的这个过程叫做派生 派生方法一 指明道姓访问某一个类的函数:该方法与继承无关 派生方法二 严格以继承属性查找关系 super()会得到一个特殊的对象,该对象就是按照继承关系专门用来访问父类中的属性的 super().\_\_init\_\_(不用为self
阅读全文
摘要:[TOC] 类的继承 什么是继承 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类可以称为基类或超类,新建的类称为派生类或子类 继承的特性是:子类会遗传父类的属性 继承是类与类之间的关系 为什么用继承 子类会"遗传"父类的属性,从而使用继承可以减少代码冗余 对
阅读全文
摘要:[TOC] 面向对象基础 面向过程编程与面向对象编程 面向过程编程 面向过程编程的核心是过程,过程指的是解决问题的步骤。基于面向过程编程的思想编写程序好比在设计一条流水线,是一种机械式的思维方式。 优点:逻辑清晰(逻辑一步一步的,比较系统) 缺点:扩展性差(上一个函数的输出是下一个函数的输入,如果改
阅读全文
摘要:[TOC] re模块 用来从字符串(文本)中查找特定的东西 1.元字符:有特殊意义的字符 ^ 从开头匹配 $ 从末尾开始匹配 | 相当于或者or [] 找到[]内的元素 [^] 取反,匹配出除[^]里面的字符,^元字符如果写到字符集里就是反取 () 找到匹配的结果后,只取()内的,分组匹配 . 表示
阅读全文
摘要:[TOC] numpy模块 计算速度快,提供了数组操作、数组运算、以及统计分布和简单的数学模型,用来存储和处理大型矩阵 创建矩阵 创建一维矩阵 创建二维矩阵 创建三维矩阵 获取矩阵的行列数 切割矩阵 切分矩阵类似于列表的切割,但是与列表的切割不同的是,矩阵的切割涉及到行和列的切割,但是两者切割的方式
阅读全文
摘要:[TOC] logging模块 用于便捷记录日志且线程安全的模块 日志总共分为以下五个级别,这五个级别自下而上进行匹配debug info warning error critical logging模块包含四个角色:logger、Filter、Formatter、Handler logger: 产
阅读全文
摘要:[TOC] time模块 time模块一般用于不同时间格式的转换,在使用前用import time导入。在python中,通常有这几种方式来表示时间: 1.时间戳(timestamp):时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。返回浮点型 2.格式化时间:表示的是普通的
阅读全文
摘要:作业需求:模拟实现一个ATM + 购物商城程序 额度15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠款总额 万分之5 每日计息 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款接口 AT
阅读全文
摘要:[TOC] 模块 什么是模块 函数是某一功能的集合体,而模块是一系列功能的集合体,因此模块可以看成是一堆函数的集合体。一个py文件内部就可以放一堆函数,因此一个py文件就可以看成是一个模块,如果文件名为 ,则模块名为 。模块分为以下几类: 自定义模块:即使用python编写的.py文件 第三方模块:
阅读全文
摘要:[TOC] 二分法 二分法查找适用于数据量较大时,但是数据需要先排好顺序。主要思想是:(设查找的数组区间为array[low, high]) (1)确定该区间的中间位置k (2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。 区域确定如下:arr
阅读全文
摘要:[TOC] 迭代器 迭代器即迭代的工具,迭代是一个重复的过程,每次重复即是一次迭代,并且每次迭代的结果都是下一次迭代的初始值 可迭代对象 只要拥有\_\_iter\_\_()方法的对象就是可迭代对象,如下: 可见:字符串/列表/元组/字典/集合/文件都是可迭代对象 迭代器对象 拥有\_\_iter\
阅读全文

浙公网安备 33010602011771号