随笔分类 - python
Python格式化字符串的4种方式
摘要:目录: Python格式化字符串的4中方式 一:%号 二:str.format 三:f-Strings 四:标准库模板 五:总结四种方式的应用场景 Python格式化字符串的4种方式 一:%号 %号格式化字符串的方式从Python诞生之初就已经存在,时至今日,python官方也并未弃用%号,但也
Python3 并发编程之IO模型
摘要:目录: 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 异步IO(Asynchronous I/O) 六 IO模型比较分析 七 selectors模块 视频链接 一 IO模型介绍 为了
Python3 并发编程之协程
摘要:引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的时间过长
Python3 并发编程之线程操作
摘要:理论知识 全局解释器锁GIL Python代码的执行由Python虚拟机(也叫解释器主循环)来控制。Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行。虽然 Python 解释器中可以“运行”多个线程,但在任意时刻只有一个线程在解释器中运行。 对Python虚拟机的访问由全局解释器锁
Python3 并发编程之线程理论
摘要:什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一个流水线 流水线的工作需要电源,电源就相当于cpu 所以,进
Python3 并发编程之进程操作
摘要:运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程。多个进程可以实现并发效果。 1.multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.c
Python3 进程间通信-4种队列方式
摘要:摘自:http://www.ityouknow.com/python/2019/10/10/python-queue-029.html 纯做收藏记录,要看请去源处。 queue 模块即队列,特别适合处理信息在多个线程间安全交换的多线程程序中。下面我们对 queue 模块进行一个详细的使用介绍。 1
Python3 并发编程之进程理论
摘要:1.一些概念 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理、调度进程,并且将多个进程对硬件的竞争变得有序 多道技术:处理的同时,读取另一程序进内存。(单CPU) 1.产生背景:针对单核,实现并发 ps: 现在的主机一般是多核,那么每个核都会利用多道技术 有4个cpu,运
Python3 继承原理,多继承,菱形问题,派生,重用,组合
摘要:1.经典类和新式类 在Python2中有经典类与新式类之分,没有显式地继承object类的类,以及该类的子类,都是经典类。 显式地继承object的类,以及该类的子类,都是新式类。 而在Python3中,即使没有显式地继承object,也会默认继承该类,因而在Python3中统一都是新式类。 2.继
Python3 抽象基类
摘要:抽象基类 抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化。 抽象类与普通类的不同之处在于:抽象类中要有抽象方法(没有实现功能),该类不能被实例化,只能被继承,且子类必须实现抽象方法。 疑问: 已经有了鸭子类型 和多态 ,为什么还要用这个呢?答: 为了 解决两个事情 抽象基类文档 使用
Python3 魔法方法详解
摘要:魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动触发的。它们经常是两个下划线包围来命名的(比如 __init__,__lt__),Python的魔法方法是非常强
Python对象自省——运行时判断对象的类型
摘要:简介 自省(introspection)指在运行时判断一个对象的类型 Python中一切都是对象,自省是Python的强项 通过自省可以知道一个对象的能力、状态 type() type()返回对象类型 a = list() print(type(a)) # <class 'list'> dir()
Python3 描述符 (__get__/__set__/__delete__/__getattr__/__getattribute__/__setattr__/__delattr__)
摘要:描述符 Python 中,通过使用描述符,可以让程序员在引用一个对象属性时自定义要完成的工作。本质上看,描述符就是一个类,只不过它定义了另一个类中属性的访问方式。换句话说,一个类可以将属性管理全权委托给描述符类。 描述符是 Python 中复杂属性访问的基础,它在内部被用于实现 property、方
Python3 多进程和多线程
摘要:多进程 multiprocessing模块就是跨平台版本的多进程模块。提供了一个Process类来代表一个进程对象。 from multiprocessing import Process import os # 子进程要执行的代码 def run_proc(name): print('Run ch
Python3 反射
摘要:1.反射是什么? python是动态语言,而反射(reflection)机制被视为动态语言的关键。 反射机制指的是在程序的运行状态中 对于任意一个类,都可以知道这个类的所有属性和方法; 对于任意一个对象,都能够调用他的任意方法和属性。 这种动态获取程序信息以及动态调用对象的功能称为反射机制。 2.如
Python3 迭代对象和迭代器的区别,深刻理解__iter__和__next__ 迭代器的原理(自定义迭代器方法进行)
摘要:迭代器和生成器都是很重要的知识,因为在后边的同步异步都要用到. python的迭代协议构成了迭代器. 迭代器是访问集合内元素的一种方式,一般用来遍历数据. 要记住 迭代器和 下标的访问方式不一样,迭代器没有返回值,它取值的方式就是用next(). 迭代器提供了一种惰性访问数据方式,访问数据时候才能计
Python3 迭代器迭代对象疑问的总结
摘要:1.可迭代对象Iterable和迭代器Iterator的区别 Iterable中实现__iter__方法,__iter__方法会返回一个Iterator。注意,这里返回的是一个迭代器。自定义可迭代类的时候,要返回一个迭代器,不能return self,自己不是一个迭代器。 迭代器继承自Iterabl
Python3 内置方法
摘要:一. 简介 python内置了一系列的常用函数,以便于我们使用,python英文官方文档详细说明:点击查看, 为了方便查看,将内置函数的总结记录下来。 二. 使用说明 以下是Python3版本所有的内置函数: 内置函数 abs() dict() help() min() setattr() all(
元类 (exec和__call__)
摘要:目录: 元类介绍 class关键字创建类的流程分析 自定义元类控制类StanfordTeacher的创建 自定义元类控制类StanfordTeacher的调用 再看属性查找 一 元类介绍 如果一切皆为对象,那么类StanfordTeacher本质也是一个对象,既然所有的对象都是调用类得到的,那么St