Python

Python中使用__new__实现单例模式并解析

单例模式是一个经典设计模式,简要的说,一个类的单例模式就是它只能被实例化一次,实例变量在第一次实例化时就已经固定。在Python中常见的单例模式有None,这就是一个很典型的设计,通常使用ifxxxisNone或者ifxxxisnotNone来比较运算。Python实现单例模式代码如下:classMyClass:_instance=None_first_init=Falsedef__new__(cls,*args,**kwargs):ifnotcls._i

系统 2019-09-27 17:56:37 3345

编程技术

函数的单一职责原则(SRP)

结构化编程强调单一出口的原则,其目的在于增强函数流程的逻辑性。本身这个原则有些过于死板,但其保持代码逻辑性的目的是非常正确的。在面向对象设计,我们都知道要遵循单一职责原则(SRP),而函数也应遵循这一原则,以保证函数体逻辑的清晰并且高内聚。以下示例中,UpdateValue函数与下面m_value的赋值语句造成了逻辑的分散:当需要变更m_value的赋值逻辑时,往往会修改UpdateValue函数,而忽略了下面的赋值语句,这就会引起新的问题。顾此失彼嘛!这

系统 2019-08-29 23:41:38 3345

编程技术

split使用心得

最近使用split做字符串分割的功能,一直以为它就是可以将“01```1979-09-21``````”通过语句.split("```");就能四个长度的数组。结果工程上报问题,看了日志发现MD这个家伙根本没有完成我的愿望。它只分隔了有数据的两个长度的数组出来。上网查看才知道,要想将空数据也能正常分隔,需要调用它的重载方法.split("```",-1);这样就能分隔四个长度的数组了。JDK原文:splitpublicString[]split(Strin

系统 2019-08-29 23:26:47 3345

C++

C++学习笔记(四)--虚函数表解析

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函

系统 2019-08-29 23:23:29 3345

Javascript

使用纯javascript通过className来获取元素 (ge

MarkFinklesuggestedthatIdosomespeedtesting,nowthatanativeimplementationofgetElementsByClassNamehaslandedintheMozillatrunk(destinedforFirefox3).SoIwentaroundanddugupallofthedifferent,existing,implementationsthatIcouldfind.Currently

系统 2019-08-29 22:47:45 3345

Python

python遇到sql2005 varchar(4000) varchar(MAX)

要往数据库里面写入一个长文本字段,这个字段是svg文件中polyline元素的points属性。设计时,数据库字段设置为varchar(4000)使用python读取svg,将points属性写入数据库,一切ok使用python根据查询数据库,重新生成svg时,读出来的points数据少了一大截,刚学python,算了,不搞了用Java写了一个,一切ok回头看看,Java映射成的是varchar(MAX)重新运行python,读出来的数据一切ok晕死,原来

系统 2019-08-29 22:01:23 3345

Python

Python第三方库安装之PyUserInput

一、直接安装直接在Scripts文件下通过pipinstallPyUserput安装,报错:CouldnotfindaversionthatsatisfiestherequirementpyHook(frompyuserinput)(fromversions:)NomatchingdistributionfoundforpyHook(frompyuserinput)二、解决报错安装PyUserInput之前需要安装PyHook1.在https://www.

系统 2019-09-27 17:56:32 3344

C++

C/C++内存分配方式,栈区堆区 new/delete/mallo

http://blog.csdn.net/rujielaisusan/article/details/4622197内存分配方式内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

系统 2019-08-12 01:33:52 3344

Java

Java开发人员的十大戒律

对Java开发者来说,有许多的标准和最佳实践。本文列举了每一个开发人员必须遵从的十大基本法则;如果有了可以遵从的规则而不遵从,那么将导致的是十分悲惨的结局。1.在你的代码里加入注释每个人都知道这点,但不知何故忘记了遵守。算一算有多少次你“忘记”了添加注释?这是事实:注释对程序在功能上没有实质的贡献。但是,你需要一次又一次的回到你两个礼拜之前写的代码上来,可能一辈子都是这样,你一定记不住这些代码为什么会这样。如果这些代码是你的,你还比较的幸运。因为它有可能让

系统 2019-08-29 23:40:08 3343

C#

C#中利用FileSystemWatcher对单个文件内容的监视

在项目中需要用FileSystemWatcher对单个文件内容进行监视,文件中每添加一行则需要Fire相应的事件,代码如下publicclassCommandWatcher{publiceventEventHandlerCommandHandler;Fields#regionFieldsprivatestringfileName;privateFileSystemWatcherwatcher;privateSystem.

系统 2019-08-12 09:26:54 3342

C++

C++中malloc/free和new/delete 的使用

malloc/free的使用要点函数malloc的原型如下:void*malloc(size_tsize);用malloc申请一块长度为length的整数类型的内存,程序如下:int*p=(int*)malloc(sizeof(int)*length);我们应当把注意力集中在两个要素上:“类型转换”和“sizeof”。*malloc返回值的类型是void*,所以在调用malloc时要显式地进行类型转换,将void*转换成所需要的指针类型。*malloc函数

系统 2019-08-12 01:54:43 3340

编程技术

053_《Delphi网络通信协议分析与应用实现》

《Delphi网络通信协议分析与应用实现》Delphi教程系列书籍(053)《Delphi网络通信协议分析与应用实现》网友(邦)整理EMail:shuaihj@163.com下载地址:Pdf书名:Delphi网络通信协议分析与应用实现作者:钟军汪晓平等著出版社:人民邮电出版社书号:7115110034出版日期:2003年1月开本:787*10921/16页码:483版次:2003年1月北京第一版第一次印刷内容简介本书介绍如何利用Delphi开发网络与通信应

系统 2019-08-29 23:54:09 3339

ASP.NET

asp.net页面生命周期回顾

---根据一讲师所讲做了一下笔记,仅供参考会存在些错误页面声明周期:1.HttpApplication在第11和第12个事件之间开始了页面声明周期,调用了第8个事件创建实例的pr(ProcessRequest)方法。2.创建控件树3.设置IsPostBack;(根据viewstate设置true或false4init(创建控件树实例赋初始值,这里并没有将页面控件的值赋值给他)((初始化有:初始化前:PreInit():设置页面的主题,模板页;动态设置模板页

系统 2019-08-12 01:33:14 3339

PHP

PHPAnalysis中文分词类实用教程

PHPAnalysis是目前广泛使用的中文分词类,使用反向匹配模式分词,因此兼容编码更广泛,现将其变量与常用函数详解如下:一、比较重要的成员变量$resultType=1生成的分词结果数据类型(1为全部,2为词典词汇及单个中日韩简繁字符及英文,3为词典词汇及英文)这个变量一般用SetResultType($rstype)这方法进行设置。$notSplitLen=5切分句子最短长度$toLower=false把英文单词全部转小写$differMax=fals

系统 2019-08-12 09:27:00 3338