随笔分类 - Python程序开发
摘要:一、socketserver模块 SocketServer 是标准库中的一个高级模块,它的目标是简化很多样板代码,它们是创建网络客户端和服务器所必须的代码。这个模块中有为你创建的各种各样的类。 类 描述 BaseServer 包含核心服务器功能和 min-in 类的钩子;仅用于推导,这样不会创建这个
阅读全文
摘要:一、什么是UDP协议 相对于 TCP 协议,UDP 协议则是面向无连接的协议。使用 UDP 协议时,不需要建立连接,只需要知道对象的 IP 地址和端口号,就可以直接发数据包。但是,数据无法保证一定到达。虽然用 UDP 传输数据不可靠,但它的优点是比 TCP 协议的速度快。对于不要求可靠到达的数据而言
阅读全文
摘要:一、TCP协议简介 1.1、什么是TCP协议 TCP 协议则是建立在 IP 协议之上的。TCP 协议负责在两台计算机之间建立可靠连接,保证数据包按顺序达到。TCP 协议会通过 3 次握手建立可靠连接。然后需要对每个 IP 包进行编号,确保对方按顺序收到,如果包丢了,就自动重发。一个 TCP 报文来了
阅读全文
摘要:一、什么网络通信 计算机网络把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大、功能强的网络系统,从而使众多的计算机可以方便的互相传递信息、共享硬件、软件、数据信息等资源。网络编程直接或间接地通过网络协议与其它计算机实现数据交换,进行通信。 OSI参考模型 TCP/IP参考模型
阅读全文
摘要:一、生产者消费者模型 假如有两个进程 A 和 B,它们共享一个 固定大小的缓冲区 ,A 进程产生数据放入缓冲区,B 进程从缓冲区中取出数据进行计算,那么这里其实就是一个生产者和消费者的模式,A 相当于生产者,B 相当于消费者。 在多线程开发中,如果生产者生产数据的速度很快,而消费者消费数据的速度很慢
阅读全文
摘要:一、什么是多任务 如果一个操作系统上同时运行了多个程序,那么称这个操作系统就是 多任务的操作系统,例如:Windows、Mac、Android、IOS、HarmonyOS 等。如果是一个程序,它可以同时执行多个事情,那么就称为 多任务的程序。 一个 CPU 默认可以执行一个程序,如果想要多个程序一起
阅读全文
摘要:一、什么是协程 从 Python 3.4 开始,Python 加入了协程的概念,使用 asyncio 模块实现协程。但这个版本的协程还是以生成器对象为基础。 Python 3.5 中增加了 async、await 关键字,使协程的实现更加方便。 协程(Coroutine),又称 微线程,是一种运行运
阅读全文
摘要:一、什么是进程 进程(process)则是一个执行中的程序。每个进程都拥有自己的地址空间、内存、数据栈以及其它用于跟踪执行的辅助数据。操作系统管理其上所有进程的执行,并为这些进程合理分配时间。进程也可以通过派生新的进程来执行其它任务,不过因为每个新进程也都拥有自己的内存和数据栈等,所以只能采用进程间
阅读全文
摘要:一、什么是线程 线程(thread)它们是同一个进程下执行的,并共享相同的下上文。线程包括开始、执行顺序和结束三部分。它有一个指令指针,用于记录当前运行的上下文。当其它线程运行时,它可以被抢占(中断)和临时挂起(也称为睡眠)—— 这种做法叫做让步(yielding)。 当一个程序运行时,默认有一个线
阅读全文
摘要:一、什么是描述符 如果一个类中有如下 3 个方法中的任意一个,那么这个类创建的对象,可以称为 描述符对象。 object.__get__(self, instance, owner=None) object.__set__(self, instance, value) object.__delete
阅读全文
摘要:一、什么是元类 在 Python 中,一切皆为对象,即类也是一个对象。type 是内置的元类。我们用 class 关键字定义的所有的类以及内置的类都是由元类 type(内置的元类) 实例化产生的。 class Person: def __init__(self, name, age): self.n
阅读全文
摘要:一、什么是上下文管理器 任何实现 __enter__() 和 __exit__() 方法的对象都可称为 上下文管理器。上下文管理器对象可以使用 with 关键字。这样说的话,文件(file)对象也实现了上下文管理器。 __enter__() 方法返回资源对象,这里就是你将要打开的那个文件对象,__e
阅读全文
摘要:一、什么是浅拷贝 只对对象的最顶层进行的拷贝称为 浅拷贝。我们可以用 copy 模块中的 copy() 方法实现浅拷贝。 import copy a = [11, 22, 33] b = [44, 55, 66] c = [a, b] d = copy.copy(c) print(f"c: {c}"
阅读全文
摘要:一、什么是生成器 利用迭代器,我们可以每次迭代获取数据(通过 next() 方法)时按照特定的规律进行生成。但是在实现一个迭代器时,关于当前迭代的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态,并配合 next() 函数进行迭代使用。简而言之,迭代器时可以实现在循环的
阅读全文
摘要:一、什么是迭代器 迭代器 指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续的,单纯的重复并不是重复。迭代器是用来迭代取值的工具,而涉及到把多个值循环取出的数据类型有:列表、字符串、元组、字典、集合、打开的文件对象等。 我们可以通过 while 循环的方式取值,这种取值方
阅读全文
摘要:一、概述 正则表达式(regular expression)又称 规则表达式,是一种文本模式(pattern)。正则表达式使用一个字符串来描述、匹配具有相同规格的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式的核心功能就是处理文本。正则表达式并不仅限于某一种语言,但是在每种语
阅读全文
摘要:一、什么是反射 Python 是一种动态语言,而反射(reflection)机制被视为动态语言的关键。反射机制指的是在程序的运行过程中,对于任意一个类,都可以知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意方法和属性。这种动态获取程序信息以及动态调用对象的功能称为 反射机制。 反射,
阅读全文
摘要:一、random模块 random 模块用来创建随机数的模块。 random.random() # 随机生成一个大于0且小于1之间的小数 random.randint(a, b) # 随机生成一个大于等于a小于等于b的随机整数 random.uniform(a, b) # 随机生成一个大于等于a小于
阅读全文
摘要:一、什么是包 在 Python 中,包(Package)也是一个模块。当我们模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用包。普通的模块就是一个 py 文件,而包一个分级层次的目录结构,它将一组功能相近的模块组织在一个目录下。这样,既可以起到代码规范的作用,又能避免模块名重名引
阅读全文
摘要:一、什么是模块 模块化 指将一个完成的程序分解为一个一个小的模块。通过将模块组合,来搭建一个完整的程序。如果不采用模块化,那么所有的代码将统一保存到一个文件中。采用模块化后,将程序分别编写到多个文件中。使用模块化后,我们可以把代码进行复用,这方面后序的开发和维护。 二、模块的创建 在 Python
阅读全文

浙公网安备 33010602011771号