08 2017 档案

摘要:一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的时间 阅读全文
posted @ 2017-08-31 16:34 A-a 阅读(212) 评论(0) 推荐(0)
摘要:因为Python解释器帮你自动定期进行内存回收,你可以理解为python解释器里有一个独立的线程,每过一段时间它起wake up做一次全局轮询看看哪些内存数据是可以被清空的,此时你自己的程序 里的线程和 py解释器自己的线程是并发运行的,假设你的线程删除了一个变量,py解释器的垃圾回收线程在清空这个 阅读全文
posted @ 2017-08-30 19:49 A-a 阅读(412) 评论(0) 推荐(0)
摘要:一 介绍 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样一 阅读全文
posted @ 2017-08-30 19:48 A-a 阅读(249) 评论(0) 推荐(0)
摘要:一、理论部分 一 什么是进程 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 举例(单核+多道,实现多个进程的并发执行): egon在一个时间段内有很多任务要做:python备课的任务,写书的任务,交女朋友的任务,王者荣耀上分的任务, 但egon同一时刻只能做一个任务(cpu同一 阅读全文
posted @ 2017-08-28 20:00 A-a 阅读(404) 评论(0) 推荐(0)
摘要:一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) C/S架构与socket的关系: 我们学习socket就是 阅读全文
posted @ 2017-08-24 20:01 A-a 阅读(315) 评论(0) 推荐(0)
摘要:一、hashlib模板 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 摘要算法就是通过摘要函数f()对任意长度的数据data计算 阅读全文
posted @ 2017-08-18 15:51 A-a 阅读(324) 评论(0) 推荐(0)
摘要:一、isinstance和issubclass 二、反射 python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射) 四个方法:hasattr(),getattr(),setattr(),delattr() 1.对象中 2.类中 3.模块 二 阅读全文
posted @ 2017-08-16 19:57 A-a 阅读(256) 评论(0) 推荐(0)
摘要:【封装】 隐藏对象的属性和实现细节,仅对外提供公共访问方式。 【好处】 1. 将变化隔离; 2. 便于使用; 3. 提高复用性; 4. 提高安全性; 【封装原则】 1. 将不需要对外提供的内容都隐藏起来; 2. 把属性都隐藏,提供公共方法对其访问。 私有变量和私有方法 在python中用双下划线开头 阅读全文
posted @ 2017-08-16 19:33 A-a 阅读(284) 评论(0) 推荐(0)
摘要:抽象类与接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 开发中容易出现的问题 接口初成:手动 阅读全文
posted @ 2017-08-14 21:57 A-a 阅读(296) 评论(0) 推荐(0)
摘要:一、组合 二、继承 什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 查看继承 提示:如果没有指定基类,python的类会默认继承object类,object是所有py 阅读全文
posted @ 2017-08-14 21:51 A-a 阅读(306) 评论(0) 推荐(0)
摘要:面向过程 VS 面向对象 面向过程的程序设计:核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式的思维方式。 优点是:复杂度的问题简单化、流程化 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车, 阅读全文
posted @ 2017-08-10 20:01 A-a 阅读(309) 评论(0) 推荐(0)
摘要:一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用 阅读全文
posted @ 2017-08-09 17:10 A-a 阅读(236) 评论(0) 推荐(1)
摘要:一、time模块 表示时间的三种方式 在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.ti 阅读全文
posted @ 2017-08-08 17:31 A-a 阅读(370) 评论(0) 推荐(0)
摘要:正则表达式 字符: 量词: . ^ $ * + ? { } 李杰李莲李二 李杰和李莲英李二棍 注意:前面的*,+,?等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配 字符集[][^] 李杰李莲英李二棍子 李杰李莲英李二棍子 4563 4563 分组 ()与 或 |[^] 身份证号码是一个 阅读全文
posted @ 2017-08-07 17:20 A-a 阅读(448) 评论(0) 推荐(1)
摘要:一、复习 迭代器:拥有__iter__,__next__; 怎样从迭代器中取值:_next 和 for 生成器: 自己定义一个能实现迭代器功能的函数就是生成器 生成器函数:带yield的函数,调用生成器函数,不会执行函数中的任何功能,只是返回一个生成器,调用next、时才执行函数中内容,遇到yiel 阅读全文
posted @ 2017-08-05 19:06 A-a 阅读(429) 评论(0) 推荐(1)
摘要:分页查找 一、可迭代对象 可以将某个数据集内的数据“一个挨着一个的取出来”,就叫做迭代。 可迭代协议 假如我们自己写了一个数据类型,希望这个数据类型里的东西也可以使用for被一个一个的取出来,那我们就必须满足for的要求。这个要求就叫做“协议”。 可以被迭代要满足的要求就叫做可迭代协议。可迭代协议的 阅读全文
posted @ 2017-08-02 20:13 A-a 阅读(396) 评论(0) 推荐(1)
摘要:内置函数 接下来,我们就一起来看看python里的内置函数。截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。它们就是python提供给你直接可以拿来使用的所有函数。这些函数有些我们已经用过了,有些我们还没用到过,还有一些是被封印了,必须等我们学了新知识才能解开封印的 阅读全文
posted @ 2017-08-01 17:30 A-a 阅读(210) 评论(0) 推荐(1)
摘要:内置函数 接下来,我们就一起来看看python里的内置函数。截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。它们就是python提供给你直接可以拿来使用的所有函数。这些函数有些我们已经用过了,有些我们还没用到过,还有一些是被封印了,必须等我们学了新知识才能解开封印的 阅读全文
posted @ 2017-08-01 17:30 A-a 阅读(152) 评论(0) 推荐(0)