三个角色:环境(Context)角色:持有一个Strategy类的引用。抽象策略(Strategy)角色:通常由一个接口或者抽象类实现,此角色给出所有的具体策略类所需的接口。具体策略(ConcreteStrategy)角色:包装相关算法和行为为了帮助理解,我们举例来说明。我们的程序要实现加密功能。加密有一个加密算法,加密算法有很多种,比如MD5,DES等,我们的程序需要实现这个功能,就是可以让用户选择不同的加密算法进行加密。这个过程我们可以用Strateg
系统 2019-08-29 23:23:58 1926
上接《索引创建(3):DocumentWriter处理流程二》1.3.3第三车间——TermsHashPerField&FreqProxTermsWriterPerFieldTermsHashPerField和FreqProxTermsWriterPerField负责将token信息(字符串内容termTest,所在文档编号docID,所在文档中的位置position,所在文档中的词频frequence)添加到索引的Hash表结构(postingsHash
系统 2019-08-29 21:59:43 1926
Python的property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回。使用property修饰的实例方法被调用时,可以把它当做实例属性一样property的用法1――装饰器方式在类的实例方法上应用@property装饰器classTest:def__init__(self):self.__num=100@propertydefnum(self):print("--get--")returnself.__num@num
系统 2019-09-27 17:57:10 1925
第一个Python程序交互式编程交互式编程不需要创建脚本文件,是通过Python解释器的交互模式进来编写代码。linux上你只需要在命令行中输入Python命令即可启动交互式编程,提示窗口如下:$pythonPython2.7.6(default,Sep92014,15:04:36)[GCC4.2.1CompatibleAppleLLVM6.0(clang-600.0.39)]ondarwinType“help”,“copyright”,“credits”
系统 2019-09-27 17:56:51 1925
说明:关于类的这部分,我参考了《LearningPython》一书的讲解。创建类创建类的方法比较简单,如下:复制代码代码如下:classPerson:注意,类的名称一般用大写字母开头,这是惯例。当然,如果故意不遵循此惯例,也未尝不可,但是,会给别人阅读乃至于自己以后阅读带来麻烦。既然大家都是靠右走的,你就别非要在路中间睡觉了。接下来,一般都要编写构造函数,在写这个函数之前,先解释一下什么是构造函数。复制代码代码如下:classPerson:def__ini
系统 2019-09-27 17:55:28 1925
今天终于可以用wxPython开发GUI程序了,非常高兴。把其中的一些注意点写下来以供参考。在windowsXP平台下,首先需要做以下环境的配置:1.首先是安装python,安装完之后将python/bin所在目录添加到path中。2.安装wxPython,此时要注意wxPython的版本要与前面python的版本一致。3.安装py2exe,这是windows平台下一个非常好的python程序发布工具,可以将python程序编译成exe而脱离python环
系统 2019-09-27 17:55:05 1925
前言自动化测试中我们存放数据无非是使用文件或者数据库,那么文件可以是csv,xlsx,xml,甚至是txt文件,通常excel文件往往是我们的首选,无论是编写测试用例还是存放测试数据,excel都是很方便的。那么今天我们就把不同模块处理excel文件的方法做个总结,直接做封装,方便我们以后直接使用,增加工作效率。openpyxlopenpyxl是个第三方库,首先我们使用命令pipinstallopenpyxl直接安装注:openpyxl操作excel时,行
系统 2019-09-27 17:54:53 1925
判读是否存在文件夹importtensorflowastfimportosfolder='./floder'ifnottf.gfile.Exists(folder):#若文件夹不存在,则自动创建文件夹tf.gfile.MakeDirs(folder)若存在删除文件夹下所有文件iftf.gfile.Exists(folder):#返回一个listforfilein(tf.gfile.ListDirectory(folder)):#添加绝对路径,并删除文件tf
系统 2019-09-27 17:54:49 1925
实例如下:#-*-coding:utf-8-*-fromnumpyimport*importnumpyasnpimportpandasaspdfrommathimportlogimportoperator#计算数据集的香农熵defcalcShannonEnt(dataSet):numEntries=len(dataSet)labelCounts={}#给所有可能分类创建字典forfeatVecindataSet:currentLabel=featVec[-
系统 2019-09-27 17:54:47 1925
戳这里~小结Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑错误!要注意定义可变参数和关键字参数的语法:*args是可变参数,args接收的是一个tuple;**kw是关键字参数,kw接收的是一个dict。以及调用函数时如何传入可变参数和关键字参数的语法:可变参数既可以直接传入:func(1,2,3),又可以先组装list或tuple,再通过*args传
系统 2019-09-27 17:54:27 1925