- 博客(21)
- 收藏
- 关注
原创 多任务&线程
多任务&线程线程方法补充&守护线程多线程共享全局变量&参数多任务udp聊天多任务tcp服务端多线程资源竞争&互斥锁死锁&线程同步线程方法补充&守护线程这里主要介绍两个关于线程的方法active_count显示当前活跃的线程数量current_thread显示当前的线程信息(名称,ID等)下面通过一段代码来具体看看这两个方法的作用import threadingimport osimport timedef dem
2021-02-16 19:21:02
311
2
原创 线程和多任务
线程和多任务多任务多任务介绍多任务理解实现多任务方式线程线程介绍使用线程完成多任务查看线程数量验证子线程的执行和创建继承Thread类创建线程多任务多任务介绍同时做多件事就是多任务,重点就是同时进行。多任务理解这里提出两个概念,并发和并行。并发:CPU数量小于当前执行的多任务,假的多任务,并不是同一时刻才运行所有任务,而是通过时间片轮转的方式,高速的切换运行的任务达到短时间内运行多个任务的结果。并行:CPU数量大于当前执行的多任务,真的多任务,因为CPU数量足够,所以每个任务由不同的C
2021-02-10 16:45:02
345
1
原创 黏包现象和HTTP协议
黏包现象和HTTP协议黏包现象什么是黏包解决方案HTTP协议HTTP协议概念URL的概念查看HTTP通信过程HTTP请求报文分析HTTP响应报文分析静态web服务器黏包现象什么是黏包当发送网络数据时,tcp协议会根据Nagle算法将时间间隔短,数据量小的多个数据包打包成一个数据包,先发送到自己操作系统的缓存中,然后操作系统将数据包发送到目标程序所对应操作系统的缓存中,最后将目标程序从缓存中取出,而第一个数据包的长度,应用程序并不知道,所以会直接取出数据或者取出部分数据,留部分数据在缓存中,取出的数据
2021-02-10 14:53:22
1024
原创 socket UDP、TCP发送接收数据
socket UDP、TCP发送接收数据基础计算机网络概念两台电脑的通信IP地址与协议公网IP和内网IPNAT技术端口介绍socket简介TCP/IP协议socketUDP发送接收数据udp发送数据udp接收数据TCP发送接收数据TCP与UDP的区别基础计算机网络概念两台电脑的通信两台电脑之间的通信类似于写信,数据通过网线传输到服务器,在经过服务器传输给目标电脑,其中ip地址是唯一标识,用来识别你要发送的对象,在写信中ip地址就相当于我们的通信地址。IP地址与协议规定网络地址的协议称为ip协
2021-02-02 09:10:52
2735
2
原创 python元类及迭代生成器
python元类及迭代生成器\_\_getattr__和 \_\_getattribute__函数概念实例属性描述符概念实例创建元类概念实例metaclass属性概念实例迭代器和生成器概念实例__getattr__和 __getattribute__函数概念__getattr__是当类调用一个不存在的属性是自动调用的魔法函数,其中self是类本身,item是不存在的属性名__getattribute__是不论何时都优先调用,所以除非特殊情况,最好不要使用实例下面通过一个简单的实例来展示这两
2021-01-04 21:25:30
156
1
原创 垃圾回收及性能分析
垃圾回收及性能分析常见的参数错误概念说明实例展示内存的基本知识内存的概念内存管理进程内的内存管理内存的分配内存池机制分配策略缓冲池机制垃圾回收垃圾回收机制引用计数机制手动回收实例演示循环引用代码调试print调试pdb调试性能分析cProfile进行性能分析常见的参数错误概念说明这里通过一串代码阐述一个常见的关于可变对象和不可变对象的参数错误可变对象即为内部参数可以被重写的对象,例如列表、字典等不可变对象即内部参数不能被更改,例如字符串、整数、元组等当一个可变对象被重新赋值时,它的id地址并没
2020-12-24 20:34:20
784
原创 类与对象深度问题与解决技巧
类与对象深度问题与解决技巧抽象基类概念及特点应用场景类与对象深度问题如何为创建大量实例节省内存问题描述解决方法如何派生内置不可变类型并修改其实例化行为问题描述解决方法with语句简化上下文管理器问题描述解决方法如何让类支持比较操作问题描述解决方法通过实例方法名字的字符串调用方法问题描述解决方法抽象基类概念及特点抽象基类(abstract base class,ABC):抽象基类就是类里定义了纯虚成员函数的类。纯虚函数只提供了接口,并没有具体实现。抽象基类不能被实例化(不能创建对象),通常是作为基类供
2020-12-21 21:07:34
436
1
原创 类与对象深度
类与对象深度鸭子类型和多态概念实例type和isinstance的区别区别实例类属性和实例属性的查找顺序查找原理实例python对象的自省机制概念实例super函数概念实例魔法函数魔法函数的实质\_\_str__, \_\_repr__ ,__getitem__实例鸭子类型和多态概念动态语言调用实例方法时不检查类型,只要方法存在,参数正确,就可以调用。这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。多态的概念即为定义时的
2020-12-18 20:25:05
104
原创 面向对象(三)
面向对象(三)多重继承概念多态概念属性和方法异常异常的简介异常的传播异常的处理多重继承概念在python中是支持多重继承的,也就是我们可以为一个类指定多个父类可以在类名后面的括号里添加多个类,实现多重继承通过__bases__方法可以查看当前类的所有父类,print的结果可以看出通过在C类的括号里添加多个类,使得C类实现了多重继承,同时拥有A、B两个父类继承,会是类拥有多个父类,故而可以获取多个父类的方法和属性从上面的结果可以明显看出,C继承了A、B两个父类的属性aa、bb以及方法test和
2020-12-05 21:33:47
144
原创 面向对象(下)
面向对象(下)self函数概念实例特殊方法概念实例封装封装的引入封装的补充继承概念实例property装饰器概念实例self函数概念在使用代码创建一个新类时,通过这个类创建的每个实例对象除了共有的属性之外,每个实例对象一般会有自己的特殊的属性,如果一个一个去重新赋值,程序将会十分繁琐,且不易实现,这时就需要用到self函数的概念Python编写类的时候,每个函数参数第一个参数都是self,self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然
2020-12-04 22:05:25
108
原创 迭代器、可迭代对象及面向对象基础
迭代器、生成器简介以及面向对象基础列表推导式迭代器迭代的概念可迭代对象的概念迭代器的概念迭代器和可迭代对象的区别生成器面向对象类基础列表推导式列表推导式可以通过一行简单的代码从一个旧列表中快速创建一个符合用户需求的新列表,旧列表可以是已有的列表,也可以是range函数创建的列表,语法如下:[表达式 for 变量 in 旧列表 条件]实例:假如我需要创建一个列表,列表中的元素为0-100之间能够被3整除的数,思路:根据需求,这里的条件应该为被3整除即变量%3==0,0-100之间的数可以得出旧的列
2020-11-24 20:31:55
322
原创 函数下
函数下高阶函数闭包装饰器的引入装饰器的使用命名空间高阶函数接受函数作为参数,或者将函数作为返回值返回的函数就是高阶函数闭包将函数作为返回值也是高阶函数我们称之为闭包闭包的好处通过闭包可以创建一些只有当前函数能访问的变量可以将一些私有数据藏到闭包内形成闭包的条件函数嵌套将内部函数作为返回值返回内部函数必须要使用到外部函数的变量装饰器的引入我们可以直接通过修改函数中的代码来完成需求,但是会产生以下一些问题如果修改的函数,修改起来会比较麻烦不方便后期的维护这
2020-11-19 22:24:47
300
原创 python函数(二)(实参的类型,递归函数等)
python函数(二)(实参的类型,递归函数等)函数的传递方式不定长参数参数的解包函数的返回值文档字符串函数的作用域递归函数函数的传递方式定义形参时,可以为形参指定默认值。指定了默认值以后,如果用户传递了参数则默认值不会生效,如果用户没有传递,则默认值就会生效。关键字参数:关键字参数可以不按照形参定义的顺序去传递,而根据参数名进行传递混合使用位置参数和关键字参数的时候必须将位置参数写到关键字参数前面不定长参数定义函数时,可以在形参前面加一个*,这样这个形参可以获取到所有的实参,它会将所有
2020-11-15 20:58:52
288
原创 集合和函数基础
集合和函数基础集合集合的简介集合的使用集合的运算函数(一)函数简介函数的参数形参和实参函数的传递方式集合集合的简介集合的表现形式为set,和列表非常相似不同之处在于:集合只能存储不可变对象集合存储元素是无序的集合中不会出现重复的元素可以通过{ }来创建集合使用set()函数可以将列表、字典转换为集合,将字典转换为集合时只能保存字典的键集合的使用函数len()使用获取集合中元素的数量in 、not in 判断元素是否在、不在集合里面方法a
2020-11-13 09:52:21
738
原创 python 元组和字典的使用
文章目录元组元组的简介元组的使用字典字典的简介字典的使用遍历字典元组元组的简介元组表现形式为tuple我们可以通过()来创建一个元组元组是一个不可变序列(一般当我们希望数据不可变时,我们使用元组,其他时候都用列表)元组的使用如果元组不是空元组,那么至少有一个‘,’,当元组不是空元组时括号可以省略元组解包指将元祖中的每一个元素都赋值给一个变量但是元组解包时的变量个数要与元组里面的元素个数相等(多或者少都不行)如果希望将元组解包赋给少于元组内元素个数的变量,可以在变量前
2020-11-11 13:40:45
268
原创 python序列基础及列表的使用
文章目录序列基本概念序列的分类列表列表的使用切片通用操作修改列表列表的方法序列基本概念序列是python中最基本的一种数据结构,序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置{索引}并且序列中的数据会按照添加的顺序来分配索引。数据结构指计算机中数据存储的方式。序列的分类可变序列(序列中的元素可以改变):例如列表(list)、字典(dict)。不可变序列(序列中的元素不可以改变):例如字符串(str)、元组(tuple)。列表列表是python中的一个对象。列
2020-11-07 22:34:46
895
原创 条件运算符及条件控制语句
文章目录条件运算符条件控制语句条件判断语句(if语句)input函数if-else语句if-elif-else语句while语句循环嵌套continue和break条件运算符条件运算符也称作三元运算符,具体形式为:语句1 if 表达式 else 语句2,条件运算符在执行时,会先对表达式进行求值判断,若结果为True,则执行语句1,若为False,则执行语句2.运算符的优先级可以参照优先级参照表条件控制语句条件判断语句(if语句)执行的流程:if语句在执行时,会先对条件表达式进行求值判断,如
2020-11-05 22:32:51
811
原创 python运算符的概念及分类
文章目录运算符概念分类算术运算符赋值运算符比较运算符逻辑运算符非布尔值的与、或运算运算符概念运算符用于执行程序代码运算,会针对一个以上操作项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。分类算术运算符加法运算符 表现形式“+”减法运算符 表现形式“-”乘法运算符 表现形式“*”除法运算符 表现形式“/”,由于有的数不能整除,所以除法必定会返回一个浮点数。整除运算符 表现形式“//”,只会保留计算后的整数位,返回一个整数。取余运算
2020-11-05 20:56:03
517
原创 python基本数据类型(标识符、字符串等)
基本数据类型文章目录基本数据类型几个概念表达式语句程序函数标识符关键字标识符的概念基本数据类型整数和小数布尔值和空值变量变量的概念变量的运算字符串什么是字符串转义字符长字符串格式化字符串字符串的其他操作几个概念表达式表达式,是由数字、算符、数字分组符号、自由变量和约束变量等自由组成以能求得数值的有意义排列方法所得的组合表达式的特点1.表达式一般仅仅用于计算一些结果,不会对程序产生实质性影响2.如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出。语句语句:一个语法上
2020-11-04 10:46:33
1722
原创 Python语言的概念及特色及Pycharm的安装配置
文章目录python语言python基本概念python的特色python的发展及应用python之禅pip工具的使用pycharm的配置pycharm的简单配置python语言python基本概念python是一种极少数能兼具简单与功能强大的编程语言,它专注于如何解决问题,而非复杂的语法结构。官方对python的说明如下:Python 是⼀款易于学习且功能强大的编程语言。 它具有高效率的数据结构,能够简单又有效地实现⾯向对象编程。Python 简洁的语法与动态输入之特性,加之其解释性语言的本质
2020-10-31 12:23:46
884
原创 python编程基础知识
python第一课计算机要点计算机的基本概念计算机是什么计算机的组成计算机语言计算机语言的基本概念计算机语言的发展解释型语言和编译型语言的区别交互方式交互方式的种类文本交互模式的打开方式DOS命令文本文件和字符集文本文件常见的字符文件进制进制之间的转换进制的计数数据间的换算环境变量基本概念环境变量操作path环境变量计算机要点本次内容包括计算机的基本概念,计算机的语言种类、交互方式,文本文件和字符集,进制之间的转换和计数和环境变量的概念。计算机的基本概念计算机是什么计算机俗称电脑,是一种用于高速
2020-10-27 15:26:47
831
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人