随笔分类 - Python
摘要:IO模型介绍 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-bloc
阅读全文
摘要:引言 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的时间过长
阅读全文
摘要:什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一个流水线 流水线的工作需要电源,电源就相当于cpu所以,进程只
阅读全文
摘要:多道技术 多道技术中的多道指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题,解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。 空间上的复用:将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序。 时间上的复用:当一
阅读全文
摘要:socket的起源 socket一词的起源 在组网领域的首次使用是在1970年2月12日发布的文献IETF RFC33中发现的,撰写者为Stephen Carr、Steve Crocker和Vint Cerf。根据美国计算机历史博物馆的记载,Croker写道:“命名空间的元素都可称为套接字接口。一个
阅读全文
摘要:什么是异常 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下 异常的追踪,异常的分类,异常的值、 而错误分成两种 #语法错误示范一 if #语法错误示范二 def test: pass
阅读全文
摘要:运算符重载 Python语言提供了运算符重载功能,增强了语言的灵活性,这一点与C++有点类似又有些不同。鉴于它的特殊性,今天就来讨论一下Python运算符重载。 Python语言本身提供了很多魔法方法,它的运算符重载就是通过重写这些Python内置魔法方法实现的。这些魔法方法都是以双下划线开头和结尾
阅读全文
摘要:封装 最主要的作用:隐藏对象的属性和实现细节,仅对外提供公共访问方式 封装原则 将不需要对外提供的内容都隐藏起来 把属性都隐藏,提供公共方法对其访问 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) #其实这仅仅这是一种变形操作 #类中所有双下划线开头的名称如__x都会自动变形成:
阅读全文
摘要:继承 最主要的作用:减少类与类之间代码冗余的问题 在程序中继承是一种新建子类的方式,新创建的类称之为子类\派生类,被继承的类称之为父类\基类\超类,继承描述的是一种遗传关系,子类可以重用父类的属性。如何继承,先抽象再继承。 单继承和多继承 查看基类,父类 经典类与新式类 提示:如果没有指定基类,py
阅读全文
摘要:什么是面向对象编程 面向对象编程是一种程序的范式,它把程序看成是对不同对象的相互调用,对现实世界建立的一种模型。在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法。 什么是类 什么是类对象 注意类名后面有个冒号,在block块里面就可以定义属性和方法了。当一
阅读全文
摘要:hashlib 什么是hashlib 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡
阅读全文
摘要:shutil 高级的文件、文件夹、压缩包 处理模块 shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的 import zipfile #压缩 z=zipfile.ZipFile('laxi.zip','w') #在当前目录下建立一个名为laxi的空压缩包(已经存
阅读全文
摘要:time与datetime模块 先认识几个python中关于时间的名词: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。1970年之前的日期无法以此表示,太遥远的
阅读全文
摘要:模块 什么是模块 模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能。一个模块就是一个包含了一组功能的python文件,比如spam.py,模块名为spam,可以通过import spam使用。在python中,模块的使用方式都是一样的,但其实细说的话,模块可以分为四个通用类别 im
阅读全文
摘要:递归 是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。使用递归解决问题,思路清晰,代码少。但是在主流高级语言中(如C语言、Pascal语言等)使用递归算法要耗用更多的栈空间,所以在堆栈尺寸受限制时(如嵌
阅读全文
摘要:内置函数 截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。它们就是python提供给你直接可以拿来使用的所有函数。 详细的功能说明请参阅:http://www.runoob.com/python/python-built-in-functions.html 作用域相
阅读全文
摘要:装饰器 什么是装饰器 装饰器本身可以是任意可调用的对象=>函数 被装饰的对象也可以是任意可调用的对象=>函数 一个装饰器是一个需要另一个函数作为参数的函数。在装饰器内部动态定义一个函数:wrapper(原意:包装纸)。这个函数将被包装在原始函数的四周,因此就可以在原始函数之前和之后执行一些代码. 为
阅读全文
摘要:关键字参数 对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数 。至于到底传入了哪些,就需要在函数内部通过ss检查。 仍以person()函数为例,我们检查是否有传入的city和job参数: 可以看出,调用者可以传入不受限制的关键字参数,不仅仅只是我们想要的city和job参数 命名关键字
阅读全文
摘要:函数的定义 1 函数strlen叫做函数名 函数名必须由字母下划线数字组成,不能是关键字,不能是数字开头函数名还是要有一定的意义能够简单说明函数的功能 2 def是关键字 3 ():必须写 4 函数体内尽量写注释,方便查看代码 5 函数的调用:函数名+括号 函数调用的三种形式 函数的返回值 函数返回
阅读全文
摘要:一、%的用法 1.1整数输出 %o —— oct 八进制 ; %d —— dec 十进制 ; %x —— hex 十六进制 1.2浮点数输出 %f ——保留小数点后面六位有效数字 ; %.3f,保留3位小数位 %e ——保留小数点后面六位有效数字,指数形式输出;%.3e,保留3位小数位,使用科学计数
阅读全文