摘要: 1.阻塞IO模型 在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 普通的socket通信就是阻塞IO,blocking IO的特点就是在IO执行的两个阶段(等待数据和拷贝数据两个阶段)都被block了。 2.非阻塞IO 如果kernel中的数据还没 阅读全文
posted @ 2018-12-22 11:52 gaoxing1 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 协程就是一个线程,只是说再一个线程上来回切换。 协程切换任务是靠代码,遇到IO 操作就切换,而线程和进程是靠操作系统自动切换 1.greenlet 2.gevent 只有协程遇到能识别的IO操作才切换(from gevent import monkey;monkey.patch_all()) gre 阅读全文
posted @ 2018-12-18 23:46 gaoxing1 阅读(179) 评论(0) 推荐(0) 编辑
摘要: py2编码:包含2种类型str和unicode, str相当于bytes, unicode 相当于str python 2默认编码为ASCII,所以出现中文时会出现报错,那是一位ASCII没有包括中文。 str是unicode这个字符串经过编码(utf8,gbk等)后的字节组成的序列,unicode 阅读全文
posted @ 2018-12-18 17:34 gaoxing1 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 正则表达式模式 下表列出了正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变 前向肯定界定符。如果所含正则表达式,以 ... 表示,在当前位置成功匹配时成功,否则失败。 但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩余部分还要尝试界定符的右边 阅读全文
posted @ 2018-12-18 14:59 gaoxing1 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 1.普通%格式化字符串 用的最多的就是 %s %d %f,还有就是进制 %o %x %X %d %s %f %x %o 2. {}.format()格式字符串 阅读全文
posted @ 2018-12-18 14:49 gaoxing1 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 装饰器的作用就是在已经写好的函数上,不改动写好的函数的前提下,增加额外的功能 比如有100个不一样的函数,我想在这100个函数都额外增加一个相同的功能,利用装饰器可以减少重复代码 1.简单的装饰器 2.带参数的装饰器 3.多个装饰器 阅读全文
posted @ 2018-12-18 10:33 gaoxing1 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Python的hashlib提供了常见的摘要算法,如SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 等 在python3中已经废弃了md5和sha模块 1.MD5加密 阅读全文
posted @ 2018-12-17 22:21 gaoxing1 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 1.staticmethod 静态方法 2.__import__ 动态模块导入 3.all() 判断给定的所有迭代对象为True时返回True 4.enumerate(seq,index)遍历对象加索引,模式是0开始,可以设定index值1,从1开始 5.int(x,base=10) base 默认 阅读全文
posted @ 2018-12-17 17:48 gaoxing1 阅读(210) 评论(0) 推荐(0) 编辑
摘要: _xxxx 变量或者方法,只能用于模块本身,其他子类可以访问,但不能被引用到其他模块去。 比如这个变量在 1.py中不能拿到2.py中使用。 __xxxx 代表私有变量或者私有方法 只允许这个类本身访问,实例化对象后也不能通过.__xxxxx去调用,子类也不能访问,不能通过继承方式后去这个私有变量。 阅读全文
posted @ 2018-12-17 16:09 gaoxing1 阅读(235) 评论(0) 推荐(0) 编辑