随笔分类 -  zbasic

摘要:利用python安装虚拟环境 $ mkdir work $ python3 -m venv work/$ cd work $ ls bin include lib lib64 pyvenv.cfg share 虚拟环境的配置文件:pyvenv.cfg-->里面有对应的版本号以及路径 激活虚拟环境 s 阅读全文
posted @ 2020-11-03 10:21 tulintao 阅读(573) 评论(0) 推荐(0)
摘要:grequests实际上就是封装了gevent里面的方法,然后配合上requests模块实现了异步的IO grequests = gevent + requests + greenlet grequests.map()内部的实现 def map(requests, stream=False, siz 阅读全文
posted @ 2020-02-28 20:14 tulintao 阅读(958) 评论(0) 推荐(0)
摘要:优酷:https://www.processon.com/diagraming/5d5f897fe4b09965face8d6d 首先以注册功能为例:https://www.processon.com/diagraming/5d5f8ed2e4b09965face9c31 1、首先将用户数的数据进行 阅读全文
posted @ 2019-08-23 15:28 tulintao 阅读(655) 评论(0) 推荐(1)
摘要:ps:python解释器有很多种,最常见的就是C python解释器 GIL全局解释器锁: GIL本质上是一把互斥锁:将并发变成串行,牺牲效率保证了数据的安全 用来阻止同一个进程下的多个线程的同时执行(同一个进程内多个线程无法实现并行但是可以实现并发) GIL的存在是因为C python解释器的内存 阅读全文
posted @ 2019-08-14 20:21 tulintao 阅读(227) 评论(0) 推荐(0)
摘要:并发编程: 操作系统:(基于单核研究) 多道技术: 1、空间上的复用 多个程序共用一个计算机 2、时间上的复用 切换+保存状态 例如:洗衣 烧水 做饭 切换: 1、程序遇到IO操作系统会立刻剥夺着CPU的执行权限 IO:input、sleep、accept、recv...阻塞 日常生活中使用的软件通 阅读全文
posted @ 2019-08-12 15:35 tulintao 阅读(176) 评论(0) 推荐(0)
摘要:并发编程: 操作系统:(基于单核研究) 多道技术: 1、空间上的复用 多个程序共用一个计算机 2、时间上的复用 切换+保存状态 例如:洗衣 烧水 做饭 切换: 1、程序遇到IO操作系统会立刻剥夺着CPU的执行权限 IO:input、sleep、accept、recv...阻塞 日常生活中使用的软件通 阅读全文
posted @ 2019-08-12 15:35 tulintao 阅读(152) 评论(0) 推荐(0)
摘要:异常处理: 什么是异常处理: 程序在运行过程中出现了不可预知的错误,并且该错误没有对应的处理机制,那么就会以异常的形式表现出来,造成的影响就是整个程序无法再正常运行 异常的结构: 异常的类型、异常的信息、异常的位置 异常的种类: 1、语法错误 是你程序能立刻解决的,这种错误是不能被容忍的,语法上的错 阅读全文
posted @ 2019-08-08 15:17 tulintao 阅读(310) 评论(0) 推荐(0)
摘要:本地回环地址:127.0.0.1 简易版服务端: 简易版客户端: 注意:在写服务端和客户端的时候send和recv需要一一对应,不能再两边都出现,recv是跟内存要数据,至于数据的来源无需考虑 粘包: 服务端: 客户端: 服务端打印结果: 这是因为tcp协议会将时间间隔短的,和文件大小小的会一次打包 阅读全文
posted @ 2019-08-07 23:40 tulintao 阅读(289) 评论(0) 推荐(0)
摘要:网络编程: 软件开发架构: c/s架构(client/server) c:客户端 s:服务端 b/s架构(browser/server) b:浏览器 s:服务端 服务端:24小时不间断提供服务 客户端:什么时候想要体验服务了,就去找服务端寻求服务 osi七层协议: 应用层: HTTP协议:流式协议、 阅读全文
posted @ 2019-08-06 21:17 tulintao 阅读(355) 评论(0) 推荐(0)
摘要:反射:reflect,反射指的是一个对象应该具备可以检测、修改、增加自身属性的能力,反射就是通过字符串操作属性 hasattr(对象,带查询的属性名称) 判断某个对象中是否存在某个属性 getattr 从指定对象中取出属性,第三个参数为默认值,当参数不存在时返回的就是默认值 setattr 为对象添 阅读全文
posted @ 2019-07-30 19:01 tulintao 阅读(225) 评论(0) 推荐(0)
摘要:isinstance:判断一个对象是否是某个类的实例 参数一:要判断的对象 参数二:要判断的类型 issubclass:判断一个类是否是另一个类的子类 参数一:是待判断的子类 参数二:待判断的父类 __new__: 主要作用: 1、new方法主要继承一些不可变的class时(int,str,tupl 阅读全文
posted @ 2019-07-29 18:27 tulintao 阅读(216) 评论(0) 推荐(0)
摘要:继承: 什么是继承: 继承是一种关系,描述两个对象之间什么是什么的关系 在程序中,继承描述的是类和类之间的关系 例如 a继承了b,a就能直接使用b已经存在的方法和属性了 a称之为子类,b称之为父类,成称之为基类或超类 为什么要使用继承: 继承一方可以直接使用被继承一方已经有的东西,其目的是为了重用已 阅读全文
posted @ 2019-07-25 20:13 tulintao 阅读(249) 评论(0) 推荐(0)
摘要:什么是面向对象: 面向对象是一种编程思想,其中的核心是对象,程序是一系列对象的集合,程序员负责调度控制这些对象来交互着完成某些任务。 在面向对象中程序员的角度发生改变,从具体的操作者变成了指挥者 面向对象的三大优点: 1、扩展性 2、灵活性 3、重用性 缺点: 1、程序的复杂度提高了 2、无法准确预 阅读全文
posted @ 2019-07-24 20:26 tulintao 阅读(178) 评论(0) 推荐(0)
摘要:包:它是一系列模块文件的结合体,表现形式就是一个文件夹,该文件夹内部通常会有一个__init__.py文件,包的本质还是一个模块。 首次导入包:(在导入语句中中 . 号的左边肯定是一个包(文件夹)) 先产生一个执行文件的名称空间 1、创建包下面的__init__.py文件中的名称空间 2、执行包下面 阅读全文
posted @ 2019-07-20 12:56 tulintao 阅读(264) 评论(0) 推荐(0)
摘要:collection模块: namedtuple:它是一个函数,是用来创建一个自定义的tuple对象的,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。所以我们就可以用它来很方便的定义一种数据类型了,它具备了tuple的不可变类型,又可以根据属性来进行引用,十分的方 阅读全文
posted @ 2019-07-18 17:16 tulintao 阅读(288) 评论(0) 推荐(0)
摘要:正则表达式: 正则表达式本身是一种小型的、高度专业化的编程语言,然而在python中,通过内嵌集成re模块让调用者们可以直接调用来实现正则匹配。正则表达模式被变异成一系列的字节码,然后由C语言编写的 匹配引擎执行。 正则表达式是用来匹配处理字符串的,在python中使用正则表达式时需要引入re模块 阅读全文
posted @ 2019-07-17 19:30 tulintao 阅读(249) 评论(0) 推荐(0)
摘要:bin start.py 主要是放着当前项目的启动文件 conf settiings.py 放着对当前文件的配置文件 core src.py 主要核心逻辑 db 数据存储文件 lib common.py 一些共用的文件 log log.log 日志文件 Readme 对当前项目文件的解释说明 启动文 阅读全文
posted @ 2019-07-16 19:22 tulintao 阅读(407) 评论(0) 推荐(0)
摘要:模块:模块是一系列功能的结合体 模块的来源: 内置的模块(python解释器自带的) 第三方(开发者编写的模块) 自定义的模块(自己编写的模块) 模块的四种表现形式: 1、使用python编写的py文件(也就意味着py文件也可以称之为模块:一个py文件也可以称之为一个模块) 2、已被编译为共享库或D 阅读全文
posted @ 2019-07-16 19:14 tulintao 阅读(1073) 评论(0) 推荐(0)
摘要:迭代器:迭代器对象从集合的第一个元素开始访问,直到所有的元素都被访问完结束。迭代器只能往前不会后退 迭代:更新换代(重复)的过程,每次的迭代都必须基于上一次的结果 迭代器:迭代取值的工具 使用迭代器的原因:提供了一种不依赖于索引取值的方式 可迭代对象: 只有内置__iter__方法和__next__ 阅读全文
posted @ 2019-07-15 21:13 tulintao 阅读(179) 评论(0) 推荐(0)
摘要:函数的递归:函数在调用阶段直接或者间接的又调用自身 递归的两个阶段: 1、回溯:就是一次次重复的过程,这个重复的过程必须建立在每一次重复问题的复杂度都是应该下降的,直接有一个最终的结束条件(这个结束条件是必须的,否则就不会结束,直到到当前递归的最大层数然后报错) 2、递推:一次次往回推导的过程 如何 阅读全文
posted @ 2019-07-13 14:06 tulintao 阅读(270) 评论(0) 推荐(0)