07通用技术六月 27, 2020python进阶20_之actoractor模型。actor模式是一种最古老的也是最简单的并行和分布式计算解决方案。优点:充分利用单线程+事件机制,达到了多线程效果。缺点,对python而言,由于GIL的存在,毕竟只是单线程,难以匹敌多进程,目前使用并不多。简单任务调度器classTaskScheduler:def__init__(python进阶
07通用技术六月 27, 2020python进阶19_装饰器和闭包python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。NestedfunctionsPython允许创建嵌套函数,这意味着我们可以在函数内声明函数并且所有的作用域和声明周期规则也同样适用python进阶
07通用技术六月 21, 2020python进阶16_炫技巧原则:可读性第一(效率固然重要,除非非常明显的效率差异,否则可读性优先)学习炫技巧,更多为了读懂他人代码,自己开发过程中,相似代码量(可读性),建议使用通俗写法。反对为炫而炫。可直接运行的zip包有Python包,居然可以以zip包进行发布,并且可以不用解压直接使用。这个zip是如何制作的呢,请看下python进阶
07通用技术六月 21, 2020python进阶17_正则表达式正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。正则基础知识^`:匹配行首`$`:匹配结尾`*`:(**贪婪**)前面字符匹配任意多次`+`:(**懒惰**)前面python进阶
07通用技术六月 14, 2020python进阶14_变量作用域LEGB作用域“作用域”定义了Python在哪一个层次上查找某个“变量名”对应的对象。接下来的问题就是:“Python在查找‘名称-对象’映射时,是按照什么顺序对命名空间的不同层次进行查找的?”答案就是:使用的是LEGB规则,表示的是Local->Enclosed->Global->Built-in,其中的python进阶
07通用技术六月 14, 2020python进阶15_多继承与MixinMixin解释为了让大家,对这个Mixin有一个更直观的理解,摘录了网上一段说明。民航飞机是一种交通工具,对于土豪们来说直升机也是一种交通工具。对于这两种交通工具,它们都有一个功能是飞行,但是轿车没有。所以,我们不可能将飞行功能写在交通工具这个父类中。但是如果民航飞机和直升机都各自写自己的飞行方法,python进阶
07通用技术六月 13, 2020python实战05_文件路径(找不到文件)开发时遇到问题,文件路径不正确,找不到文件等等,都是这一类问题.curdir,argv,file举例:文件1代码:defget_cur_path1():importosprint(os.path.abspath(os.curdir))defget_cur_path2():importsysprintpython实战
07通用技术六月 7, 2020python进阶13_并发之九多进程和数据共享使用进程,大概率出现情况是,想当然以为共享了,实际没共享。所以最终程序大概率卡死(部分逻辑没有数据进来,导致的业务逻辑性卡住,并非程序死锁)哪些共享,哪些不共享默认进程是都不共享,包括全局变量。父子进程其实处于不同的资源空间(进程是系统分配资源的最小单位),所以2进程其实是完全独立的资源空间,数据自python进阶
07通用技术六月 7, 2020python进阶12_并发之八多线程与数据同步python并发首选进程,但偶尔有场景进程无法搞定,比如有些变量是无法序列化的,就无法使用工具包manager()的工具类进行共享。如果自己实现新的共享方法,可能开发量较大,且质量难以保证。此时可考虑用线程处理,规避进程的变量共享难题,而且实际场景中,IO大概率都是瓶颈,所以使用线程其实也的确有些优python进阶
07通用技术六月 6, 2020杂谈_浅谈nginx,gunicorn,flask差异比对flask(django)(如Flask,django)nginx,用户角度直接对接使用,请求响应的request-response出入口WSGI(WebServerGatewayInterface),翻译为Pythonweb服务器网关接口,即Python的Web应用程序(如Flask)和Web服务杂谈
07通用技术五月 30, 2020python进阶10_并发之六并行化改造图示变量含义说明:1个大step中包含3个小step,大step内部的第一步,二步,三步存在依赖关系(就是内部保持顺序执行)a1,b1,c1,表示子任务a的第一步,b的第一步,c的第一步.同理a2,表示子任务a的第二步。无并行水平并行优点:修改简单,容易排错缺点:使用场景有限,适合批量数据,不适合流python进阶
07通用技术五月 30, 2020python进阶11_并发之七多种并发方式的效率测试测试map,apply_async,gevent协程爬虫测试代码函数代码defthread_multi():threads=list()forurlinurls:threads.append(threading.Thread(target=process,args=(url,)))[t.start(python进阶
07通用技术五月 27, 2020linux_cp目录路径和通配符cp作为linux最常用命令,大部分情况正确使用,偶尔也会犯低级错误。比如,今天自己copy目录就犯错了。特此整理下以下基于ubuntu16测试(xxx含义为目录a/下的所有文件)copy目录a目录b结果cpabb/a/xxxcpa/bb/a/xxxcpa/*bb/xxxcpab/b/a/xxxcplinux
07通用技术五月 24, 2020python进阶07_并发之三其他问题何时使用多进程(线程)使用多进程or线程,对于python,考虑到GIL锁,基本上默认使用多进程就对了。除此之外,线程共享全局变量,进程全局变量则是隔离的,实际进程大多数情况需要通信的,所以也需要考虑共享数据读写问题处理。决定因素稳定性和数据共享要求上(操作系统差异性,win偏好线程,linux偏好python进阶
07通用技术五月 24, 2020python进阶08_并发之四map, apply, map-async, apply-async差异差异矩阵python封装了4种常用方法,用于实现并发其差异如下Multi-argsConcurrenceBlockingOrdered-resultsmapnoyesyesyesapplyyesnoyesnomap_asyncnoyesnoyesapply_asyncyesyesnono需要注意:mpython进阶