一.问题的提出我常常在思考一个问题,我们如何能设计出高水平、高质量的软件出来。怎样是高水平、高质量的软件?它应当是易于维护、易于适应变更、可重用性好的一个系统。如何做到这一点呢?答案当然是“低耦合、高内聚”了。低耦合就是软件在构造的时候,各个模块、各个功能、各个类都不会过度依赖于它周围的环境。只有这样,才能使我们的模块(功能、类)在周围发生变更时不受影响,做到易于维护和易于适应变更。正因为如此,也使它更易于重用到其它功能类似的环境中,提高了重用性。高内聚则
系统 2019-08-29 21:59:02 1954
/***转载请注明作者longdickhttp://longdick.iteye.com**/相关帖子:1、人人都是领域专家-用例图2、人人都是领域专家-活动图3、人人都是领域专家-类图4、人人都是领域专家-顺序图5、人人都是领域专家-类图关系化6、人人都是领域专家-类图关系说明需求阶段用例图完成以后,需要进一步描述用例。由于每一个用例可能对应几个事件流,单从用例不能获取有效的信息。这时候就要用到活动图了。活动图专门用来描述用例的事件流。我们借用上一节其中
系统 2019-08-12 09:30:24 1954
我在DLL项目中遇到了,因为要对Debug版和Release版分别指定不同的输出文件名。对Debug版,我指定输出文件为dllD.dll,对Release版指定为dllR.dll。解决方法有两个:(1)删掉自动生成的dll.DEF文件,在代码中使用_declspec(dllexport)导出函数;(2)删掉dll.DEF文件中LIBRARY字段后面双引号及其内部的库名即可,也可以将其改掉。如改为:;dll.def:Declaresthemodulepara
系统 2019-08-12 09:27:30 1954
00.比99%的用户所担心的魔力要更深。如果你犹豫是否需要他们,那你不需要它们(真正需要元类的人,能够确定地直到需要它们,并且不需要说明为什么需要)。“因为某物很酷”而编写它,似乎不是一种合理的判断,除非你在做试验或者学习。01.元类就是用来创建类的“东西”。你创建类就是为了创建类的实例对象。02.03.元类的主要目的就是为了当创建类时能够自动地改变类。04.元类修改:内省属性:__class__和__dict__这样的特殊属性允许我们查看Python对象
系统 2019-09-27 17:57:31 1953
较小文件处理方法:importhashlibimportosdefget_md5_01(file_path):md5=Noneifos.path.isfile(file_path):f=open(file_path,'rb')md5_obj=hashlib.md5()md5_obj.update(f.read())hash_code=md5_obj.hexdigest()f.close()md5=str(hash_code).lower()returnmd
系统 2019-09-27 17:57:00 1953
最近有个需求就是页面上执行shell命令,第一想到的就是os.system,复制代码代码如下:os.system('cat/proc/cpuinfo')但是发现页面上打印的命令执行结果0或者1,当然不满足需求了。尝试第二种方案os.popen()复制代码代码如下:output=os.popen('cat/proc/cpuinfo')printoutput.read()通过os.popen()返回的是fileread的对象,对其进行读取read()的操作可以
系统 2019-09-27 17:56:49 1953
#把解决一类问题的模块放在同一个文件夹里——包policy.get()importosos.makedirs('glance/api')os.makedirs('glance/cmd')os.makedirs('glance/db')l=[]l.append(open('glance/__init__.py','w'))l.append(open('glance/api/__init__.py','w'))l.append(open('glance/api
系统 2019-09-27 17:56:42 1953
翻转一个链表样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null一种比较简单的方法是用“摘除法”。就是先新建一个空节点,然后遍历整个链表,依次令遍历到的节点指向新建链表的头节点。那样例来说,步骤是这样的:1.新建空节点:None2.1->None3.2->1->None4.3->2->1->None代码就非常简单了:"""DefinitionofListNodeclassListNode(object):def__in
系统 2019-09-27 17:56:36 1953
相关模块osos.pathshutilpathlib(Newinversion3.4)基本操作判断文件(夹)是否存在。os.path.exists(pathname)#newpathlib.Path(pathname).exists()判断路径名是否为文件。os.path.isfile(pathname)#newpathlib.Path(pathname).is_file()判断路径名是否为目录。os.path.isdir(pathname)#newpat
系统 2019-09-27 17:56:34 1953
1、概述1.1场景我们在使用Python中的方法method时,经常会看到参数中带有self,但是我们也没对这个参数进行赋值,那么这个参数到底是啥意思呢?2、知识点2.1成员函数(m)和普通方法(f)Python中的"类方法"必须有一个额外的第一个参数名称(名称任意,不过推荐self),而"普通方法"则不需要。m、f、c都是代码自动提示时的左边字母(method、function、class)#-*-coding:utf-8-*-classTest(obj
系统 2019-09-27 17:56:05 1953