python学习
辰辰辰辰辰Y
这个作者很懒,什么都没留下…
展开
-
【20】Python3 -协程asyncio
asynciopython3.4 引入到标准库中asyncio是内置的对异步IO的支持,其本身是一个消息循环使用:创建消息循环导入协程关闭原创 2019-10-31 20:33:41 · 203 阅读 · 0 评论 -
【19】Python3 - 协程
协程是为非抢占式多任务产生子程序的计算机程序组件。协程允许不同入口点在不同位置暂停或开始执行程序。可以从技术上理解协程是一个可以随时中断执行的函数。实现协程比较有名的包有asyncio,tornado,gevent协程的实现:yield返回值send调用同时协程还需要next()进行预激概括协程的实现过程:首先定义一个协程(可通过在函数中使用yield),其次生成一个协程(本质是...原创 2019-10-24 11:46:34 · 194 阅读 · 0 评论 -
【18】Python3 - 可迭代对象、迭代器 以及生成器
iterable & iterator可迭代(Iterable):可迭代对象可以直接作用于for循环迭代器(Iterator):不但可以作用于for循环,还可以被next调用list是典型的可迭代对象,但不是迭代器通过isinstance判断是否是可迭代对象或迭代器# isinstance案例# 判断某个变量是否是一个Iterable、Iterator实例# 判断是否...原创 2019-10-24 09:54:43 · 148 阅读 · 0 评论 -
【17】Python3 - 多进程的创建
多进程进程之间没有共享的状态。进程的一个主要问题:进程间通讯(InterprocessCommunication, IPC )进程的创建,三种方式fork()直接生成multiprocessing.Process实例对象。(首先需要导入multiprocessing包) p = multiprocessing.Process( target=clock, args= ...原创 2019-10-22 15:44:27 · 186 阅读 · 0 评论 -
【16】Python3 - 简介线程的几种替代方式
多线程在python中相对不是很常用,需要几种较为常用的替代方案。subprocesssubprocess最早在2.4版本引入。用来生成子进程,并可以通过管道连接他们的输入/输出/错误,以及获得他们的返回值。完全跳过线程,使用进程是派生进程的主要替代方案multi-processing使用threading接口派生,使用子进程允许为多核或者多cpu派生进程,接口跟thre...原创 2019-10-22 14:58:48 · 288 阅读 · 0 评论 -
【15】Python3 - 理解多线程死锁 以及 解决死锁
死锁问题通俗的理解:死锁就是多个线程各自已经占据了一些资源,但是同时又需要其他线程占据的互斥资源,才得以继续执行下去。多方都不愿意放弃已有的资源,但是又得不到想要的其他资源。由此达到了一种僵持的状态,使得程序无法继续执行下去。解决死锁 - 设置锁的等待时间可以理解为:申请锁的时候,确定等待时间,超过时间,释放自己的资源,让对方先执行完毕。之后再申请。def func_1(): ...原创 2019-10-22 14:27:29 · 812 阅读 · 0 评论 -
【14】Python3 - 线程安全问题 以及 threading.Timer的使用
线程安全在多线程中,如果一个资源或者一个变量,不需要加锁也不会引起任何问题,则称之为线程安全。线程不安全的变量类型线程不安全变量类型: list, set, dict线程安全变量类型线程安全变量类型: queue(队列)注:本文是本人根据北京图灵学院的python课程自己整理的笔记哒,转载请注明出处哈~...原创 2019-10-22 14:07:17 · 789 阅读 · 0 评论 -
【13】Python3 - 多线程共享变量问题(加锁、解锁、可重入锁)
共享变量问题当一个进程的多个线程需要访问同一个变量的时候,就产生了共享变量的问题。可以通过加锁或者信号灯的方式,解决此问题。解决互斥 - 方法1:加锁锁LOCK:通常对互斥资源进行加锁,在加锁之后,可以对互斥资源进行排他性的使用。在使用完此互斥资源后,要进行解锁。使其他线程可以对该互斥资源进行下一步操作。锁lock 其实是一个标志,表示该互斥资源正在被使用。加锁相当于一个令牌,...原创 2019-10-22 14:05:19 · 2024 阅读 · 0 评论 -
【12】Python3 - 设置守护线程 以及 线程常用属性
守护线程含义一般可以将不重要或者不允许离开主线程独立运行的线程设置成为守护线程。一旦将某个线程设置为守护线程,则该线程会在主线程结束的时候自动退出。守护线程必须设置在start之前设置。否则无效守护线程的设置t.setDaemon(True) # 两种设置守护线程的方式都可以# t.daemon = True注:守护线程运行的成功与否和运行环境有关。有时候会出现运行不成功。...原创 2019-10-22 13:20:56 · 985 阅读 · 0 评论 -
【11】Python3 - 使用thread和threading 实现多线程
多进程和多线程的相关概念进程指的是程序运行的一个状态,每个进程有自己独立的运行环境。线程可以理解为轻量级的进程,是进程的一个独立运行的片段。一个进程可以有多个线程,并且一个进程的多个线程之间共享数据和上下文运行环境。此时要考虑共享互斥问题。全局解释器锁GIL:解决互斥多线程可以提高cpu等资源的利用率。python实现多线程python实现多线程的包有thread和thread...原创 2019-10-22 13:19:38 · 474 阅读 · 0 评论 -
【10】Python3 - log日志模块
日志相关概念日志:在程序运行的关键点,定期记录一些关键的运行信息。日志属于I/O操作,所以只应该记录关键的信息,减少不必要的I/O操作。日志的levelDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY日志的作用:程序出现问题的时候,可以使用日志进行调试运维时,可以了解软件的运行情况分析定位问题日志...原创 2019-10-20 21:00:07 · 556 阅读 · 0 评论 -
【9】Python3 - file、pickle、shelve模块
文件长久保存信息的一种数据信息集合常用操作打开关闭(文件一旦打开,需要关闭操作)读写内容查找open函数open函数负责打开文件,带有很多参数第一个参数: 必须有,文件的路径和名称mode:表明文件用什么方式打开r:以只读方式打开w:写方式打开,会覆盖以前的内容x:创建方式打开,如文件已经存在,报错a:append方式,以追加的方式对文件内容进行写入b: ...原创 2019-10-18 17:20:20 · 153 阅读 · 0 评论 -
【8】Python3高级函数补充、调试
高级函数部分1.zip函数:把两个可迭代内容生成一个可迭代的tuple元素类型组成的内容。enumerate函数:和zip函数差不多,但是给可迭代数据生成的是索引,和其一起组成元组类型。默认索引是从0开始,可以使用参数start,指定索引开始的数值。3.collections模块:涉及到namedtuple、deque、defaultdict、Counter3.1- namedtupl...原创 2019-10-18 16:14:56 · 111 阅读 · 0 评论 -
【7】Python3语言高级特性-函数式编程
1.lambda表达式(匿名函数):一个表达式,可以有参数,有多个参数也可以,用逗号隔开2.高阶函数:把函数作为参数使用的函数,叫高阶函数3.系统高阶函数-map、reduce、filter、sortedmap:即把集合或者列表的元素,每一个元素都按照一定规则进行操作,生成一个新的列表或者集合。使用时,先定义一个用于操作的函数,然后再使用形如map(函数,列表)的操作进行映射。reduce...原创 2019-10-18 16:11:49 · 201 阅读 · 0 评论 -
【6】Python3高级语法-常用包calendar、time、random、datetime、os等
1.calendar包相关函数:calendar(年,w,l,c):获取一年的日历字符串.(w,l,c是三个可选参数)calendar.isleap(年):判断某一年是否是闰年calendar.leapdays(年1,年2):获取指定年份之间的闰年个数calendar.month(年,月):获取某个月的日历字符串calendar.monthrange(年,月):获取一个月的周几开始和总...原创 2019-10-18 16:09:59 · 145 阅读 · 0 评论 -
【5】Python3高级语法-异常处理
1.错误和异常:错误是可以人为避免的问题,异常是在逻辑语法正确的前提下,出现的问题。python中,异常是一个类,可以在异常处理时使用。2.异常有多种分类。3.python异常处理模块的全部语法是:try:尝试实现某个操作,如果没出现异常,任务就可以完成如果出现异常,将异常从当前代码块扔出去尝试解决异常 except 异常类型1: 解决方案1:用于尝试在此处处理...原创 2019-10-18 16:06:17 · 182 阅读 · 0 评论 -
【4】Python3高级语法-模块、包
1.模块:模块就是个python文件,后缀是.py。规范的模块内容应该包括类、函数和测试代码。使用模块时直接导入(模块如果用数字开头进行命名,导入的时候需要借助importlib)注:通过from语法导入模块,使用模块内容的时候,不需要模块前缀。2.包:将模块包含在一起的文件夹就是包。包中必须包含__init__.py的文件。注:直接导入一个包,可以使用__init__.py中的内容。导入...原创 2019-10-18 16:03:33 · 121 阅读 · 0 评论 -
【3】Python3基础完善2
OOP-Python面向对象-章节内容:一 : Python的面向对象二:面向对象编程 – 基础 – 公有私有 – 继承 – 组合,Mixin三:魔法函数(简单介绍) – 魔法函数概述 – 构造类魔法函数 – 运算类魔法函数具体如下1.oop思想、几个名词(oo、ooa、ood、oop、ooi)、类和对象的概念、类中的内容(属性和成员方法)2.类的基本实现 : 命名(大驼峰)、声明(...原创 2019-09-28 22:14:19 · 118 阅读 · 0 评论 -
【2】Python3基础完善1
1-默认参数、关键字参数 (注意调用函数时,传参的格式)2-收集参数(*args):按照list使用方式访问args得到传入的参数。3- 收集参数之关键字收集参数 (**kwargs): 把关键字参数按照dict格式存入收集参数。4-各种类型参数混合调用的顺序:定义的时候一般找普通参数,关键字参数,收集参数tuple(*args),收集参数dict(**kwargs)5- 收集参数的解包问...原创 2019-09-28 22:08:55 · 80 阅读 · 0 评论 -
【1】Python3基础内容整理
01python概述11-python是解释性语言,逐行执行,遇到问题就停止。2-python应用流程是:写代码+执行(由python解释器把命令解释给机器,同时把结果翻译给我们)02python概述2注释:分为行注释(#)和块注释(三个连续单引号或双引号)03变量1-变量名包含数字、字母、下划线。大小写敏感。推荐“驼峰命名法”,包括大驼峰、小驼峰、posix写法2-变量类型:Num...原创 2019-09-27 09:40:57 · 124 阅读 · 0 评论