备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。Memento模式比较适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,Originator可以根据保存的Memento信息还原到前一状态。大话设计模式---备忘录模式
系统 2019-08-12 01:33:16 2155
本文实例为大家分享了python多线程同步之文件读写控制的具体代码,供大家参考,具体内容如下1、实现文件读写的文件ltz_schedule_times.py#!/usr/bin/envpython#coding=utf-8importosdefReadTimes():res=[]ifos.path.exists('schedule_times.txt'):fp=open('schedule_times.txt','r')else:os.system('to
系统 2019-09-27 17:57:16 2154
前言我在使用mac安装virtualwrapper的时候遇到了问题,搞了好长时间,才弄好,在这里总结一下分享出来,供遇到相同的问题的朋友使用,少走些弯路。问题说明:Mac默认系统的python2,而我自己用的是brew安装的python3下面是我安装过程中出现的问题1.安装virtualwrapper打开终端,输入如下的命令pip3installvirtualenvpip3installvirtualenvwrapper2.在配置文件~/.bash_pro
系统 2019-09-27 17:56:58 2154
一、在豆瓣网爬取以下图书的信息:二、参考代码:1、连接MongoDB数据库,并且创建数据库和表importpymongomyclient=pymongo.MongoClient("mongodb://127.0.0.1:27017/")db=myclient['webCrawler']#创建数据库webCrawlerdatatable=db['Book_info']#创建Book_info表2、爬取数据并且存储到数据库importreimportpanda
系统 2019-09-27 17:56:44 2154
1.经典类与新式类在了解Python的类与类型前,需要对Python的经典类(classicclasses)与新式类(new-styleclasses)有个简单的概念。在Python2.x及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性;反之,即不由任意内置类型派生出的类,则称之为“经典类”。“新式类”和“经典类”的区分在Python3.x之后就已经不存在,在Python3.x之
系统 2019-09-27 17:55:45 2154
最近需要实现一个服务程序的gracefulexiting,保证在退出前关闭所有已创建的子线程python借助KeyboardInterrupted异常响应键盘中断,因此首先尝试在子线程中try-catch这个异常(失败)查阅原因,键盘中断只有主线程可以响应并处理,子线程无法收到这个异常。因此可以使用类似这样的结构:cond=Truedefstart_task():whilecond:#dosomethingdefterminate_task():#brea
系统 2019-09-27 17:55:29 2154
看看这个logo,有些像python的小蛇吧。这次介绍的数据库codernityDB是纯python开发的。先前用了下tinyDB这个本地数据库,也在一个api服务中用了下,一开始觉得速度有些不给力,结果一看实现的方式,真是太鸟了,居然就是json的存储,连个二进制压缩都没有。这里介绍的CodernityDB也是纯开发的一个小数据库。CodernityDB是开源的,纯Python语言(没有第三方依赖),快速,多平台的NoSQL型数据库。它有可选项支持HTT
系统 2019-09-27 17:55:03 2154
python函数的闭包问题(内嵌函数)>>>deffunc1():...print('func1running...')...deffunc2():...print('func2running...')...func2()...>>>func1()func1running...func2running...内部函数func2作用域都在外部函数func1作用域之内如果试图在外部函数的外部调用内部函数将会报错>>>func2()Traceback(mostre
系统 2019-09-27 17:54:55 2154
有很多程序运行时间比较长,如果不将运行过程输出将很难判断程序运行的时间。下边这段程序将按照上图所示的格式输出程序运行进程、已用时间、剩余时间。deftime_change(time_init):#定义将秒转换为时分秒格式的函数time_list=[]iftime_init/3600>1:time_h=int(time_init/3600)time_m=int((time_init-time_h*3600)/60)time_s=int(time_init-t
系统 2019-09-27 17:54:42 2154
Python面向对象编程——基本语法一、类的语法上一节最后的代码其实有问题,属性名字和年龄都写死了,想传名字传不进去。classPerson(object):def__init__(self,name,age):self.name=nameself.age=agep=Person("Alex",22)print(p.name,p.age)为什么有__init__?为什么有self?此时的你一脸蒙逼,相信不画个图,你的智商是理解不了的!画图之前,你先注释掉这
系统 2019-09-27 17:54:00 2154