创建一个软件包(package)似乎已经足够简单了,也就是在文件目录下搜集一些模块,再加上一个__init__.py文件,对吧?我们很容易看出来,随着时间的推移,通过对软件包的越来越多的修改,一个设计很差的软件包可能会出现循环依赖问题,或是可能变得不可移植和不可靠。1.__init__.py仅为导入服务对于一个简单的软件包,你可能会忍不住把工具方法,工厂方法和异常处理都丢进__init__.py,千万别这样!一个结构良好的__init__.py文件,仅为一
系统 2019-09-27 17:45:42 2036
最近做一个小程序开发任务,主要负责后台部分开发;根据项目需求,需要实现三个定时任务:1>定时更新微信token,需要2小时更新一次;2>商品定时上线;3>定时检测后台服务是否存活;使用Python去实现这三个任务,这里需要使用定时相关知识点;Python实现定点与定时任务方式比较多,找到下面四中实现方式,每个方式都有自己应用场景;下面来快速介绍Python中常用的定时任务实现方式:1>循环+sleep;2>线程模块中Timer类;3>schedule模块;
系统 2019-09-27 17:45:28 2036
本文实例讲述了Python多进程方式抓取基金网站内容的方法。分享给大家供大家参考,具体如下:在前面这篇//www.jb51.net/article/162418.htm我们已经简单了解了”python的多进程”,现在我们需要把抓取基金网站(28页)内容写成多进程的方式。因为进程也不是越多越好,我们计划分3个进程执行。意思就是:把总共要抓取的28页分成三部分。怎么分呢?#初始ranger=range(1,29)#步长step=10myList=[r[x:x+
系统 2019-09-27 17:45:24 2036
这几天在翻旧代码时发现以前写的注释部分有很多单词拼写错误,这些单词错得不算离谱,应该可以用工具自动纠错绝大部分。用Python写个拼写检查脚本很容易,如果能很好利用aspell/ispell这些现成的小工具就更简单了。要点1、输入一个拼写错误的单词,调用aspell-a后得到一些候选正确单词,然后用距离编辑进一步�鹧〕龈�精确的词。比如运行aspell-a,输入‘hella'后得到如下结果:hell,Helli,hello,heal,Heall,he'll
系统 2019-09-27 17:38:21 2036
前言任何应用都离不开数据,所以在学习python的时候,当然也要学习一个如何用python操作数据库了。MySQLdb就是python对mysql数据库操作的模块。今天写了个工具,目的是把csv中的数据插入到数据库中去。其中有一部分,是需要分别向两张表中插入两条数据,如果第二张表中的数据已经存在,那么第一张表中的数据也不需要插入。然后通过百度查找发现,其实MySQLdb库,自带了事务处理的功能,pymysql库也是一样。conn=MySQLdb.conne
系统 2019-09-27 17:38:06 2036
本文介绍了Python对于线程的支持,包括“学会”多线程编程需要掌握的基础以及Python两个线程标准库的完整介绍及使用示例。注意:本文基于Python2.4完成,;如果看到不明白的词汇请记得百度谷歌或维基,whatever。1.线程基础1.1.线程状态线程有5种状态,状态转换的过程如下图所示:1.2.线程同步(锁)多线程的优势在于可以同时运行多个任务(至少感觉起来是这样)。但是当线程需要共享数据时,可能存在数据不同步的问题。考虑这样一种情况:一个列表里所
系统 2019-09-27 17:38:03 2036
异常(exceptions)是Python中一种非常重要的类型,它和语法错误不同,是在程序运行期间引发的错误。Python中内置了很多异常,如IOError,NameError,KeyboardInterrupt等,更多的异常可以点击这里。异常的意义在于提供一种更加优雅的运行方式,例如用Python编写一个计算器,如果用户输入不能计算的对象,则可以抛出异常,并进行处理,如下:whileTrue:try:x=int(input('PleaseInenterA
系统 2019-09-27 17:37:47 2036
文章先介绍了关于俄罗斯方块游戏的几个术语。边框――由10*20个空格组成,方块就落在这里面。盒子――组成方块的其中小方块,是组成方块的基本单元。方块――从边框顶掉下的东西,游戏者可以翻转和改变位置。每个方块由4个盒子组成。形状――不同类型的方块。这里形状的名字被叫做T,S,Z,J,L,I,O。如下图所示:模版――用一个列表存放形状被翻转后的所有可能样式。全部存放在变量里,变量名字如S_SHAPE_TEMPLATEorJ_SHAPE_TEMPLATE着陆――
系统 2019-09-27 17:37:44 2036
Event机制作为重头戏,在ActionScript3.0中加强了很多。更加统一、易用、标准、灵活。ActionScript2.0中有众多的事件实现机制:[1b]回顾和比较[/1b]AS1.0玩家最爱用onClipEvent(),on(),又方便又直接。缺点在于逻辑分散到了各个舞台元件中,难以管理和维护。更加别说代码重用了。别跟俺说可以Copy,Paste,这不叫重用,这叫低级。AS2.0中,增加了一些事件处理机制:1.回调函数:onLoad,onComp
系统 2019-08-29 23:53:44 2036
JUNIT4中,有几个地方要注意一下的,归纳之1@Test(expected=ArithmeticException.class)publicvoidtestDivide(){assertEquals(3,Math.divide(9,3));Math.divide(10,0);//除数不能为0,会抛出异常}junit4中不用trycatach了,用这样声明“@Test(expected=ArithmeticException.class)”Junit4就会
系统 2019-08-29 23:34:25 2036