- 博客(12)
- 收藏
- 关注
原创 python 设计模式(七) 命令模式(command pattern)
命令模式是利用类来实现对命令函数的封装,实现命令调用者和命令接收者之间的解耦,命令模式具体包括三部分:1 命令调用者(客户端,调用命令的函数或者类)2 命令(对命令接收者命令函数的封装)3 命令接收者(真正执行命令的地方,实现了众多命令函数)三者的关系如下图具体代码实现如下import abcclass Receiver(object): ''' 命令接收者,正在执行命令的地...
2018-06-30 13:35:22 1572
原创 python 设计模式(六) 观察者模式(Observer pattern)
观察者模式即当被观察对象发生变化时,能及时通知观察者,这种需求主要用在网站或者店铺的关注上,比如你关注了某个微信公众号,或者淘宝上的商家,当公众号有更新或者店家新到商品或者商品促销时,可以及时通知你。代码实现了E_commerce被观察对象基类。主要实现了属性_observers和方法add_observer(注册观察者),delete_observer(注销观察者), notify_all_ob...
2018-06-29 09:15:22 1484
原创 python 设计模式(五) 策略模式(Strategy pattern)
举例一种常见,根据参数的值来做相应处理。比如,同一个网页,对于管理员来说,某地方显示为编辑按钮,但对于一般用户则不显示。这个逻辑很容易实现,只需用if else实现即可。一种场景,大学开学第一天。cs(computer science)专业的学生和es(software engineering)专业的同学共享辅导员。辅导员需要把这两个专业的学生都介绍一遍。如下,代码中实现了一个抽象student类...
2018-06-25 19:31:12 1085
原创 python 设计模式(四) 建造者模式(builder design pattern)
建造者模式 我们想要创建一个有多个部分构成的对象, 而且它的构成需要一步步地完成,只有各个部分都创建好了,这个对象才算完成,因此就诞生了建造者模式。建造者模式将一个复杂的构造过程与其表现分离,这样, 同一个构建过程(使用同一个指挥者)可用于创建多个不同的表现。 建造者模式一般包括:一个指挥者(director), 多个建造者(builder),比如你去Kfc点餐,你要了个鳕鱼堡,你同...
2018-06-21 08:48:04 999
原创 python 设计模式(二) 六大设计原则二 里氏替换原则(Liskov Substitution Principle)
里氏替换原则简称LSP。定义:所有引用基类的地方必须能够透明地使用其子类的对象。所谓对象是一组状态和一系列行为的组合。状态是对象的内在特性,行为是对象的外在特性。LSP所表述的就是在同一个继承体系中的对象应该有共同的行为特征。我们在设计对象时是按照行为进行分类的,只有行为一致的对象才能抽象出一个类来。因此,如果说鸵鸟和企鹅属于鸟类的话,就违背了里氏替换原则。如何规范地遵从里氏替换原则:1 子类必须...
2018-06-13 20:19:41 1341
原创 python 设计模式(二) 六大设计原则一 单一职责原则(SRP)
单一职责原则(single responsibility principle) 简称SRP。There should never be more than one reason for a class to change.仅有一种原因引起类的改变。一个类只负责一个职责。单一职责原则 这地址讲的很好,但不是用python语言实现的,在这里我用python语言实现一下。问题由来:类A负责...
2018-06-12 09:20:10 1233
原创 python 设计模式(一) 单例模式
单例模式单例模式:不管用类实例化对象多少次,所得到的对象都是同一个对象。这种模式的应用场景,如数据库连接,配置信息等。1 通过类的嵌套实现单例# create singleton by means of class nestificationclass Singleton(object): # really working class class Wrapper_class(o...
2018-06-11 18:56:05 299
原创 numpy where 函数
今天又把numpy where函数的用法忘记了。赶紧上网搜了下,写的都不太好。最后在知乎上看到了很好的答案,一看就明白了where函数的用法,链接如下 where 函数用法...
2018-06-06 18:53:09 681 1
原创 python 获取时间并格式化(strftime, localtime)
获取时间并转换为易读格式用到的模块time中的strftime, localtimefrom time import strftime, localtimeprint(strftime('%Y-%m-%d %H:%M:%S',localtime()))结果2018-06-06 18:40:41
2018-06-06 18:42:02 29463 2
原创 python 查看对象的属性和方法
dir方法print(dir(obj)) obj为对象名, 此命令打印对象所有属性和方法如a = [1,2]print(dir(a))结果如下['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', ...
2018-06-01 16:19:56 30042 3
原创 Linux 命令tar
1 打包把本地文件夹example打包为file.tar,不压缩tar -cvf file.tar ./example把本地文件后缀为pdf的文件,打包到file.tar中去,拆包时一定要指定文件夹,并且指定的文件夹存在tar -cvf file.tar *.pdf把本地文件夹example打包并压缩为file.tar.gztar -czf file.tar.gz ./example把后缀为pdf...
2018-06-01 08:34:38 2967
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人