Python设计模式设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。所有的设计模式示例都是来源于菜鸟教程,每个设计模式的UML都可以在菜鸟教程中找到相应的示例github地址:Python设计模式以工厂模式为例:工厂模式在菜鸟教程中的UML图为工厂
系统 2019-09-27 17:55:35 2129
一、ubuntu中使用pip3安装gevent时,提示:cannotimportname'main'问题;二、问题解决:解决pip3使用异常,在python3中可以使用__main__,修改如下:报错中已经提示pip文件路径:/usr/bin/pip3,cd进去,进行修改(需要管理员身份保存修改后文件,sudo执行)源文件出错内容:frompipimportmainif__name__=='__main__':sys.exit(main())修改为:fro
系统 2019-09-27 17:55:31 2129
问题https://docs.python.org/3/tutorial/errors.html#handling-exceptionshttps://docs.python.org/3/library/exceptions.html#ValueErrortry:int("x")exceptExceptionase:'''异常的父类,可以捕获所有的异常'''print(e)#e变量是Exception类型的实例,支持__str__()方法,可以直接打印。i
系统 2019-09-27 17:55:24 2129
python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。创建函数修饰符的规则:(1)修饰符是一个函数(2)修饰符取被修饰函数为参数(3)修饰符返回一个新函数(4)修饰符维护被维护函数的签名例子1:被修饰函数不带参数deflog(func):defwrapper():print('log开始...')func()print('log结束...')returnwrapper@logdeftest():print('te
系统 2019-09-27 17:54:36 2129
本文实例讲述了python使用any判断一个对象是否为空的方法。分享给大家供大家参考。具体实现代码如下:复制代码代码如下:>>>eth={"eth0″:"192.168.1.1″}>>>any(eth)True>>>eth={}>>>any(eth)False判断list是否为空传统的方式:复制代码代码如下:iflen(mylist):#Dosomethingwithmylistelse:#Thelistisempty由于一个空list本身等同于False
系统 2019-09-27 17:54:23 2129
一、协程协程,又叫微线程,纤程。英文名Coroutine。协程本质上就是一个线程优点1:协程极高的执行效率。因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越来越明显。(简单来说没有切换的消耗)优点2:不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好,所以执行效率比多线程高很多。(没有锁的概念)因为协程是一个线程执行,那怎么利用
系统 2019-09-27 17:54:05 2129
测试1deco运行,但myfunc并没有运行复制代码代码如下:defdeco(func):print'beforefunc'returnfuncdefmyfunc():print'myfunc()called'myfunc=deco(myfunc)测试2需要的deco中调用myfunc,这样才可以执行复制代码代码如下:defdeco(func):print'beforefunc'func()print'afterfunc'returnfuncdefmyfu
系统 2019-09-27 17:51:53 2129
Justnotes拿到一台干净的centos之后,初始化Python环境,一些命令和问题记录而已可以搞成脚本自动初始化,当然,用docker更好基础环境1.创建用户sudoaddusernewusersudopasswdnewuser#设置授权不需要输入密码sudo/usr/sbin/visudonewuserALL=NOPASSWD:ALL2.EPEL(FedoraExtraPackagesforEnterpriseLinuxrepository)参考文
系统 2019-09-27 17:51:15 2129
本文实例讲述了Python使用matplotlib实现交换式图形显示功能。分享给大家供大家参考,具体如下:一代码fromrandomimportchoiceimportnumpyasnpimportmatplotlib.pyplotaspltfrommatplotlib.widgetsimportRadioButtons,Buttont=np.arange(0.0,2.0,0.01)s0=np.sin(2*np.pi*t)s1=np.sin(4*np.pi
系统 2019-09-27 17:50:22 2129
python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。基本接口:复制代码代码如下:pickle.dump(obj,file,[,protocol])注解:将对象obj保存到文件file中去。protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII
系统 2019-09-27 17:47:04 2129