随笔分类 - python
摘要:什么是猴子补丁? 答: 猴子补丁(monkey patching):在运行时动态修改模块、类或函数,通常是添加功能或修正缺陷。猴子补丁在代码运行时内存中)发挥作用,不会修改源码,因此只对当前运行的程序实例有效。因为猴子补丁破坏了封装,而且容易导致程序与补丁代码的实现细节紧密耦合,所以被视为临时的变通
阅读全文
摘要:1、简述python引用计数机制 python垃圾回收主要以引用计数为主,标记-清除和分代清除为辅的机制,其中标记-清除和分代回收主要是为了处理循环引用的难题。 引用计数算法 当有1个变量保存了对象的引用时,此对象的引用计数就会加1 当使用del删除变量指向的对象时,如果对象的引用计数不为1,比如3
阅读全文
摘要:单例模式以及Python实现 单例模式 单例模式就是确保一个类只有一个实例.当你希望整个系统中,某个类只有一个实例时,单例模式就派上了用场.比如,某个服务器的配置信息存在在一个文件中,客户端通过AppConfig类来读取配置文件的信息.如果程序的运行的过程中,很多地方都会用到配置文件信息,则就需要创
阅读全文
摘要:Python 线程,with的作用(自动获取和释放锁Lock) python3,浅谈with的神奇魔法 在实际的编码过程中,有时有一些任务,需要事先做一些设置,事后做一些清理,这时就需要python with出场了,with能够对这样的需求进行一个比较优雅的处理,最常用的例子就是对访问文件的处理。
阅读全文
摘要:Python中产生随机数 一.Python自带的random库 1.参生n--m范围内的一个随机数: random.randint(n,m) 2.产生0到1之间的浮点数: random.random() 3.产生n m之间的浮点数: random.uniform(1.1,5.4) 4.产生从n m间
阅读全文
摘要:关于Python中的lambda,这篇阅读量10万+的文章可能是你见过的最完整的讲解 lambda是Python编程语言中使用频率较高的一个关键字。那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多。这里,我们通过阅读各方资料,总结了关于Python中的lambd
阅读全文
摘要:Python SocketServer模块 SocketServer功能:实现并发处理,就是将socket在封装,使得遍的更简单。 类型: #TCPserver:TCP的socketserver。 class socketserver.TCPServer(server_address,Request
阅读全文
摘要:网络爬虫urllib:request之urlopen 网络爬虫简介 网络爬虫简介 定义:按照一定规则,自动抓取万维网信息的程序或脚本。 两大特征: 能按程序员要求下载数据或者内容 能自动在网络上流窜(从一个网页跳转到另一个网页) 两大步骤 下载网页 提取正确的信息 根据一定规则自动跳转其它撤销负面上
阅读全文
摘要:asyncio与gevent并发性能测试 在对网站进行扫描或者暴破时需要对网站进行高并发操作,然而requests+concurrent多线程性能上不太理想,了解到python用得比较多的并发库有asyncio和gevent,于是就有了如下测试。 0x00 协程 asyncio和gevent都是基于
阅读全文
摘要:关于shutdown 和closesocket的彻底理解! shutdown 和closesocket 来,咱们彻底的来讨论一下这个shutdown 和closesocket 从函数调用上来分析(msdn):一旦完成了套接字的连接,应当将套接字关闭,并且释放其套接字句柄所占用的所有资源。真正释放一个
阅读全文
摘要:协程--gevent模块(单线程高并发) 先恶补一下知识点,上节回顾 上下文切换:当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另一个线程的本地数据,程序指针等,最后才开始执行。这种切换称为“上下文切换”(“context switch”)
阅读全文
摘要:Python中的logging模块就这么用 1、日志日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICALDEBUG:详细的信息,通常只出现在诊断问题上INFO:确认一切按预期运行 WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问
阅读全文
摘要:socket服务端开发之测试使用threading和gevent框架 话题是测试下多线程和gevent在socket服务端的小包表现能力,测试的方法不太严谨,也没有用event loop + pool池的概念。不管是gevent和threading有pool的情况下,确实很省资源,但是固定的pool
阅读全文
摘要:python下multiprocessing和gevent的组合使用 对于有些人来说Gevent和multiprocessing组合在一起使用算是个又高大上又奇葩的工作模式. Python的多线程受制于GIL全局锁的特性,Gevent身为协程也是线程的一种,只是io调度上自己说了算而已。 那么如何使
阅读全文
摘要:Python之23种设计模式 Python七大原则,24种设计模式 二十三种设计模式及其python实现 常用设计模式Python实现及其python实现
阅读全文
摘要:zxq547 zxq547 python定义接口继承类invalid syntax解决办法 1 2 3 4 5 6 7 class s_all(metaclass=abc.ABCMeta): #python2.7用此方法定义接口继承 # __metaclass__ = abc.ABCMeta @ab
阅读全文
摘要:pycharm 中自动补全代码提示前符号 p,m ,c,v, f 是什么意思 pycharm 中自动补全代码提示前符号 p,m ,c,v, f 是什么意思 pycharm 中自动补全代码提示前符号 p,m ,c,v, f 是什么意思 pycharm 中自动补全代码提示前符号 p,m ,c,v, f
阅读全文
摘要:gevent gevent基于协程的网络库,基于libev的快速的事件循环,基于greenlet的轻量级执行单元,重用了Python标准库中的概念,支持socket、ssl、三方库通过打猴子补丁的形式来提供同步方式编写代码的异步支持,dns解析通过线程池或c-ares,内置的tcp udp http
阅读全文
摘要:python2,socket多进程的错误pickle.PicklingError: Can't pickle python2,socket多进程的错误pickle.PicklingError: Can't pickle python2,socket多进程的错误pickle.PicklingError
阅读全文
摘要:Python3学习(二十七):python实现Redis的订阅与发布(sub-pub机制) 先介绍一下redis的pub/sub功能: Python3学习(二十七):python实现Redis的订阅与发布(sub-pub机制) 先介绍一下redis的pub/sub功能: Python3学习(二十七)
阅读全文