12 2018 档案
摘要:如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有 “with” 关键字的语句,它通常用在什么场景呢? 对于系统资源如文件、数据库连接、socket 而言,应用程序打开这些资源并执行完业务逻辑之后,必须做的一件事就是要关闭(断开)该资源。 比如 Python 程序打开一个文件,往文件中写内
阅读全文
摘要:[TOC] 无论人或事物往往都有不按套路出牌的情况,Python的类属性也是如此,存在着一些具有特殊含义的属性,详情如下: 1. \_\_doc\_\_ 表示类的描述信息 2. \_\_module\_\_ 和 \_\_class\_\_ \_\_module\_\_ 表示当前操作的对象在那个模块
阅读全文
摘要:[TOC] 1. 什么是property属性 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 如下的例子用于说明如何定一个简单的property属性: property属性的定义和调用要注意一下几点: 定义时,在实例方法的基础上添加 @property 装饰器;并且仅有一个self参
阅读全文
摘要:1. 浅拷贝 浅拷贝是对于一个对象的顶层拷贝 通俗的理解是:拷贝了引用,并没有拷贝内容。 在ipython3进程验证: 2. 深拷贝 深拷贝是对于一个对象所有层次的拷贝(递归) 在ipython3中验证: 进一步理解深拷贝: 3. 拷贝的其他方式 分片表达式可以赋值一个序列 从上可知分片表达式也是浅
阅读全文
摘要:Web静态服务器 5 非堵塞模式 单进程非堵塞模型 web静态服务器 单进程非堵塞 Web静态服务器 6 epoll IO 多路复用 就是我们说的select,poll,epoll,有些地方也称这种IO方式为event driven IO。 select/epoll的好处就在于单个process就可
阅读全文
摘要:[TOC] 1. HTTP格式 每个HTTP请求和响应都遵循相同的格式,一个HTTP包含Header和Body两部分,其中Body是可选的。HTTP协议是一种文本协议,所以,它的格式也非常简单。 1.1 HTTP GET请求的格式: 1.2 HTTP POST请求的格式: 当遇到连续两个\r\n时,
阅读全文
摘要:[TOC] re模块操作 在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re 1. re模块的使用过程 2. re模块示例(匹配以cnblogs开头的语句) 3. 说明 re.match() 能够匹配出以xxx开头的字符串 匹配单个字符 在上一小节中,了解到通过r
阅读全文
摘要:并发下载原理 运行结果: 实现多张图片同时下载
阅读全文
摘要:[TOC] 协程,又称微线程,纤程。英文名Coroutine。 协程是啥 协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过
阅读全文
摘要:[TOC] 1. 生成器 利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,
阅读全文
摘要:[TOC] 迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 1. 可迭代对象 我们已经知道可以对list、tuple、str等类型的数据使用for...in...的循环语法从其中依次拿到数
阅读全文
摘要:本节的练习的要求如下: 输入要拷贝文件夹的文件名称 读取该文件夹下的所有文件 启动5个进程来拷贝文件夹,将拷贝成功的文件名称放入队列中 主进程中显示文件拷贝的进度 代码如下:
阅读全文
摘要:当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。 初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Po
阅读全文
摘要:Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。 1. Queue的使用 可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理: 运行结果: 说明: 初始化Queue
阅读全文
摘要:[TOC] 进程以及状态 1. 进程 程序:例如xxx.py这是程序,是一个静态的 进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。 不仅可以通过线程完成多任务,进程也是可以的 2. 进程的状态 工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而
阅读全文
摘要:在之前的一篇文章( "python网络编程 udp" )中实现了一个简单的udp聊天器,只能在单线程下进行收发数据,在学习完多线程之后,实现一个能同时收发数据的udp聊天器。 说明: 编写一个有2个线程的程序 线程1用来接收数据然后显示 线程2用来检测键盘数据然后通过udp发送数据 要求: 1. 实
阅读全文
摘要:[TOC] 同步 同步的概念 同步就是协同步调,按预定的先后次序进行运行。如:你说完,我再说。"同"字从字面上容易理解为一起动作,其实不是,"同"字应是指协同、协助、互相配合。如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B执行,再
阅读全文
摘要:[TOC] 多线程 共享全局变量 多线程 共享全局变量 运行结果: 在上面的程序中。 循环五次,每次将 全局变量加一并打印 的值,在 中仅仅打印 的值。在t1线程中执行test1函数,在t2线程中执行test2函数,并在执行t2线程之前,延时一秒中来保证t1线程执行完毕。 列表当作实参传递到线程中
阅读全文
摘要:[TOC] 多任务的概念 什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运行。还有很多任务悄悄地在后台同时运行着,只是桌面上没有显示而已。 现在,多核CPU已经非常普及了,但
阅读全文
摘要:上一篇中介绍了tcp的流程,本篇通过写一个简单的文件下载器程序来巩固之前学的知识。 文件下载器的流程如下: 客户端: 1. 输入目标服务器的ip和port 2. 输入要下载文件的名称 3. 从服务器下载文件保存到本地 服务器端 : 1. 接收客户端要下载的文件名称 2. 从本地的文件中找到该文件 3
阅读全文
摘要:[TOC] TCP简介 TCP介绍 TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP) 是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。 TCP通信需要经过 创建连接、数据传送、终止连接 三个步骤。 TC
阅读全文
摘要:聊天器简易版 使用udp实现一个简单的聊天器程序,要求如下: 在一个电脑中编写1个程序,有2个功能 1.获取键盘数据,并将其发送给对方 2.接收数据并显示 并且功能数据进行选择以上的2个功能调用 例子程序如下: 运行程序: 在聊天助手中进行交互: 聊天器灵活版 上面实现的聊天虽然可以使用,但是不太方
阅读全文
摘要:[TOC] 1. 创建socket 在 Python 中 使用socket 模块的函数 socket 就可以完成(大多数的编程语言的套路是相似的): 说明: 函数 socket.socket 创建一个 socket,该函数带有两个参数: Address Family:可以选择 AF_INET(用于
阅读全文

浙公网安备 33010602011771号