目的:很多时候,我们需要多个不同策略去完成一个任务,那个插件架构是很好一个选择。而每一个策略,不希望一个个去执行,还能实时上报数据,所以每一个插件都是异步执行,把每一个插件结果回调方法实时上报,然后写入数据。线程工具类#app/MyThread.pyimportthreadingclassMyThread(threading.Thread):def__init__(self,func,**kwargs):threading.Thread.__init__(
系统 2019-09-27 17:46:02 2017
一、什么是Selenium?Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:SeleniumIDE、SeleniumWebDriver和SeleniumGrid。SeleniumIDE:Firefox的一个扩展,它可以进行录制回放,并把录制的操作以多种语言(例如java、python等)的形式导出成测试用例。SeleniumWebDriver:提供Web自动化所需
系统 2019-09-27 17:45:45 2017
在平时的工程中,我们在构建工程时,常常需要用到配置文件,用来配置项目的一些信息,比如数据库,请求网址,文件夹,线程、进程数等信息,这样就可以方便我们通过修改配置文件中的参数来很好地完成整个项目的功能修改或开发。配置文件一般区别于Python代码,会单独存放在一个文件夹中,方便管理,常见的配置文件格式有.conf,.ini,.yaml等。本文使用Python中的configparser模块来处理conf、ini配置文件。首先需要安装configparser模
系统 2019-09-27 17:45:29 2017
一、前言本文主要使用python的raw_input()函数读入多行不定长的数据,输入结束的标志就是不输入数字情况下直接回车,并填充特定的数作为二维矩阵二、代码defget2DlistData():res=[]inputLine=raw_input()#以字符串的形式读入一行#如果不为空字符串作后续读入whileinputLine!='':listLine=inputLine.split('')#以空格划分就是序列的形式了listLine=[int(e)f
系统 2019-09-27 17:38:35 2017
UDPUDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内。UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。udp通信模型中,在通信开始之前,不需要建立相关的链接,只需要发送数据即可,类似于生活中,"写信"。客户端:fromsocketimportsocket,AF_INET,SOCK_DGRAM#创
系统 2019-09-27 17:57:08 2016
本文实例讲述了python实现给字典添加条目的方法,是针对字典操作中比较实用的技巧。分享给大家供大家参考。具体实现方法如下:defaddWord(theIndex,word,pagenumber):theIndex.setdefault(word,[]).append(pagenumber)#存在就在基础上加入列表,不存在就新建个字典keyd={"hello":[3]}#d={}addWord(d,"hello",3)addWord(d,"hello",5
系统 2019-09-27 17:56:29 2016
###概述GC作为现代编程语言的自动内存管理机制,专注于两件事:1.找到内存中无用的垃圾资源2.清除这些垃圾并把内存让出来给其他对象使用。在Python中,它在每个对象中保持了一个计数器,用于记录指向该对象的的引用的个数。一旦这个计数器为0时,则立即回收该对象,对象占用的内存空间将被释放。引用计数我们可以利用简单的变量引用和销毁窥见引用计数过程。增加引用计数增加引用计数的方式多种,即对象进行引用,那么计数器都会+1#创建第一个引用a=3#用其他变量名引用b
系统 2019-09-27 17:56:09 2016
本文实例讲述了python类继承用法。分享给大家供大家参考。具体方法如下:#!/usr/bin/python#Filename:inherit.pyclassSchoolMember:'''Representsanyschoolmember.'''def__init__(self,name,age):self.name=nameself.age=ageprint'(InitializedSchoolMember:%s)'%self.namedeftell(
系统 2019-09-27 17:55:31 2016
这次用Python实现的是一个接球打砖块的小游戏,需要导入pygame模块,有以下两条经验总结:1.多父类的继承2.碰撞检测的数学模型知识点稍后再说,我们先看看游戏的效果和实现:一、游戏效果二、游戏代码#导入模块importpygamefrompygame.localsimport*importsys,random,time,mathclassGameWindow(object):'''创建游戏窗口类'''def__init__(self,*args,**
系统 2019-09-27 17:54:09 2016
一、面向对象概述如今主流的软件开发思想有两种:一个是面向过程,另一个是面向对象。面向过程出现得较早,典型代表为C语言,开发中小型项目的效率很高,但是很难适用于如今主流的大中型项目开发场景。面向对象则出现得更晚一些,典型代表为Java或C++等语言,更加适合用于大型开发场景。两种开发思想各有长短。对于面向过程的思想:需要实现一个功能的时候,看重的是开发的步骤和过程,每一个步骤都需要自己亲力亲为,需要自己编写代码(自己来做)对于面向对象的思想:当需要实现一个功
系统 2019-09-27 17:53:52 2016
英语单词优化上篇文章写到了Python开发英语单词记忆工具,其中依赖了bootstrap.cssjQuery.js基础html模块以及片段的css样式。有些朋友问,怎么能将这个练习题打包成单独的exe可执行文件,来脱离python环境使用呢?在这里跟大家简单说下思路,有需求的朋友可以自己去扒拉扒拉…依赖的css和js,如果有外网的前提,可以使用bootcdn提供的链接引用:https://cdn.bootcss.com/jquery/3.4.0/jquer
系统 2019-09-27 17:52:59 2016
filepath=input('请输入文件名称:')city_list=pocess_json_file(filepath)city_list.sort(key=lambdacity:city['aqi'])#列名lines=[]lines.append(list(city_list[0].keys()))forcityincity_list:lines.append(list(city.values()))f=open('aqi.csv','w',enc
系统 2019-09-27 17:51:58 2016
全文共2955字,预计学习时长6分钟今天本文将介绍“Gridstudio”——一个基于网络的电子表格应用程序,集Python编程语言之大成。用Gridstudio着手解决的主要问题是散乱的工作流,这是进行数据科学项目,在例如Rstudio和Excel等多个工具间来回操作时所经历的。无数次导出CSV文件,行数过高导致应用程序窗口冻结,或是想要直截了当地做一些事(比如阅读一个JSON文件)……很多人都受够这些了。现存的工具无法提供高效产出的环境和相关的工作流。
系统 2019-09-27 17:51:04 2016
Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。如下实例:tup1=('physics','chemistry',1997,2000)tup2=(1,2,3,4,5)tup3="a","b","c","d"创建空元组tup1=()元组中只包含一个元素时,需要在元素后面添加逗号tup1=(50,)元组与字符串类似,下标索引从0开始,可以进行截取,组合等。
系统 2019-09-27 17:49:55 2016
如何不靠耐心测试通常,我们编写的软件会直接与那些我们称之为“肮脏的”服务交互。通俗地说,服务对我们的应用来说是至关重要的,它们之间的交互是我们设计好的,但这会带来我们不希望的副作用――就是那些在我们自己测试的时候不希望的功能。比如,可能我们正在写一个社交软件并且想测试一下“发布到Facebook的功能”,但是我们不希望每次运行测试集的时候都发布到Facebook上。Python的unittest库中有一个子包叫unittest.mock――或者你把它声明成
系统 2019-09-27 17:49:23 2016