python
_内啥玩意啊
贵有恒,何必三更起,五更眠。最无益,只怕一日曝,十日寒
很多东西还需要探索
展开
-
【转载】进程间通信之 unix domain socket
一、知识准备1、在linux中,一切皆为文件,所有不同种类的类型都被抽象成文件(比如:块设备,socket套接字,pipe队列)2、操作这些不同的类型就像操作文件一样,比如增删改查等二、环境准备组件 版本OS CentOS Linux release 7.5.1804三、Unix domain socket 文件描述符● 主要用于:运行在同一台机器上的2个进程相互之间的数据通信● ...转载 2020-03-04 10:39:25 · 998 阅读 · 0 评论 -
python StrictRedis模块使用连接池connection_pool问题
今天在使用redis的StrictRedis模块的时候遇到了一点问题大家都知道python的redis模块有redis和strictredis模块,strictredis是严格按照redis-cli这样操作的方式,入参的顺序遵循redis-cli的顺序,而redis会有一些不同,所以官方都推荐使用strictredis在使用redis的时候有时候会采用连接池的方式来进行操作,所以就有了如下的调...原创 2020-01-20 12:50:36 · 1828 阅读 · 0 评论 -
在学python?type、object、class这些不了解一下吗?
在Python的学习中我们肯定会听到一句话:「python中一切皆对象」。如果再接着学习下去的话,我们就会接触到Python中的type, object, class等概念。网上也有不少文章阐述了这三者之间的关系,但是在看了大部分文章之后我还是似懂非懂,感觉就像有什么东西卡在了喉咙一直咽下不去一样。于是为了能让自己晚上顺利吃上饭,我立马对着搜索引擎就是一顿操作,终于赶在外卖小哥打响我电话之前...原创 2020-01-10 10:05:32 · 280 阅读 · 0 评论 -
scrapy redis
scrapy redis 会从指定的redis队列中lpop出一条url,然后将url构造成requset对象,序列化之后放入spider:requests队列中,放多少条跟配置文件设置的concurrent_request有关,默认是16个。再从spider:requests队列中用zrange()取出对象来请求处理。如果16条在中间件处理中(parse_request/parse_respon...原创 2019-12-24 18:10:49 · 101 阅读 · 0 评论 -
python aiohttp https ssl 报错问题
在使用aiohttp的过程中,访问https网站遇到了ssl报错的问题,说证书验证不通过,报错如下:aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host s.weibo.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERT...原创 2019-11-28 21:17:15 · 9655 阅读 · 1 评论 -
python asyncio的wait 和 gather
wait 和 gather两者都是在协程需要并发的时候使用。wait接受一个协程列表,返回done, peding两个集合,done里面是完成任务的协程,pending表示仍在跑的协程,通过协程.result()的方法来获取完成的结果。<coroutine object wait at 0x1095a17c8>gather以gather(cro1, cro2, cro3,...原创 2019-11-28 15:42:00 · 2528 阅读 · 0 评论 -
python 注解表达式
转载记录当你写的函数方法,要被其他人调用时, 你想让他知道传入参数的数据类型, 可以这样定义 def demo(name: str, age: 'int > 0'=20)->str: # ->str 表示该函数的返回值是str类型的 print(name, type(name)) print(age, type(age)) return "he...转载 2019-11-28 11:33:54 · 344 阅读 · 0 评论 -
scrapy download middleware
简单记录一下在srapy中的下载中间件中,process_response(self, request, response, spider)方法中的response.meta 拿的其实是与它绑定的那个request.meta但是 request 与 reponse 的绑定是在 engine这一层里面进行的,这一步在download middleware之后,所以在download midd...原创 2019-11-19 18:42:45 · 143 阅读 · 0 评论 -
如何充分发挥 Scrapy 的异步能力【转载】
作为一个易上手的高性能爬虫框架,Scrapy 使用 Twisted 异步网络框架处理并发请求。但是,在日常工作和面试过程中,经常发现有些同学会笃定地认为 Scrapy 采用的是多线程并发模型。实际上,虽 然 Twisted 框架提供了线程池支持,但是其核心网络部分处理逻辑依赖的是「单线程 IO 多路复用」技术,在 Linux 平台上,是围绕 epoll() 系统调用实现的 Reactor 模式。...原创 2019-08-26 11:43:15 · 1799 阅读 · 0 评论 -
【转载】python coroutine,future/task的理解
Event LoopOn any platform, when we want to do something asynchronously, it usually involves an event loop. An event loop is a loop that can register tasks to be executed, execute them, delay or even ...原创 2019-08-05 00:40:40 · 405 阅读 · 0 评论 -
关于python3 的asyncio
事出有因先来看两段关于asyncio的代码:代码段一:import asyncioasync def worker_1(): print('worker_1 start') await asyncio.sleep(1) print('worker_1 done')async def worker_2(): print('worker_2 start')...原创 2019-07-24 01:23:36 · 441 阅读 · 2 评论 -
python final 类 和 方法
final类:参考连接 这里class FinalMeta(type): def __new__(mcls, name, bases, dict): for base in bases: if isinstance(base, FinalMeta): raise TypeError("type '{0}' is ...转载 2019-05-09 16:41:47 · 3479 阅读 · 0 评论 -
python 判断类属性(方法)是否存在
推荐做法:hasattribute() and callable() # 这样子来判断的# 这样子会更好invert_op = getattr(self, "invert_op", None)if callable(invert_op): invert_op(self.path.parent_op)一.实现动态执行某个类中的函数#实例化类对象 atObj=Act...转载 2019-05-09 21:27:40 · 17300 阅读 · 3 评论 -
python3 多层/深层字典取值,不存在时返回默认值
python3 多层/深层字典取值,不存在时返回默认值用到了reduce 函数实现reduce函数的定义:reduce(function, sequence [, initial] ) -> valuefunction参数是一个有两个参数的函数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function。第一次调用functio...原创 2019-05-20 17:54:48 · 3409 阅读 · 0 评论 -
python dict 查找原理
dict 内部是hash table实现,关于哈希表,有一点数据结构基础的童鞋看一张图应该明了:关于1/3的空间解释(引用自 知乎):hash查找的过程模拟如下:listx = [0,1,2]listy = [‘a’,‘b’,‘c’]print listy[listx[0]]相当于是从listx中 索引值为0的地方取出值1、计算listx[0]的地址2、从该地址读取出值...转载 2019-06-13 10:49:43 · 1344 阅读 · 0 评论 -
python 全局锁 和 线程锁 的关系
GIl全局解释锁GIL:全局解释器锁。当我们使用多线程的时候,每一个进程中只有一个GIL锁,那么这多个线程中谁拿到GIL锁,谁就可以使用cpu(ps:多个进程有多个GIl锁,但每个进程中只有一个GIL),所以当python用cpython作为解释器的时候,多线程就不是真正意义上的多线程,属于伪并发的多线程。更多内容可以参考 知乎我们都知道,比方我有一个4核的CPU,那么这样一来,在单位时间...转载 2019-06-17 10:30:15 · 750 阅读 · 0 评论 -
python yield from
有一个疑问是 能不能在生成器函数中写return试验之后结果是可以的:def h(): print('Wen Chuan') yield 5 return 666c = h()a = next(c)try: b = next(c)except StopIteration as e: print(e.value)print(a)#### o...原创 2019-07-18 13:49:48 · 127 阅读 · 0 评论