元类编程装饰器任何时候你定义装饰器的时候,都应该使用functools库中的@wraps装饰器来注解底层包装函数.因为一个普通装饰器作用在某个函数上时,这个函数的重要的元信息比如名字、文档字符串、注解和参数签名都会丢失。但是@wraps不会。importtimefromfunctoolsimportwrapsdeftimethis(func):'''Decoratorthatreportstheexecutiontime.'''@wraps(func)de
系统 2019-09-27 17:50:24 1997
mydict={'Li':['M',7],'Zhang':['E',2],'Wang':['P',3],'Du':['C',2],'Ma':['C',9],'Zhe':['H',7]}res=sorted(mydict.items(),key=lambdax:x[1][1])#根据value结构[m,n]中n的值进行排序print(res)#输出#[('Zhang',['E',2]),('Du',['C',2]),('Wang',['P',3]),('Li
系统 2019-09-27 17:46:52 1997
正则表达式是Python程序设计中非常实用的功能,本文就常用的正则表达式做一汇总,供大家参考之用。具体如下:一、字符串替换1.替换所有匹配的子串用newstring替换subject中所有与正则表达式regex匹配的子串result,number=re.subn(regex,newstring,subject)2.替换所有匹配的子串(使用正则表达式对象)reobj=re.compile(regex)result,number=reobj.subn(news
系统 2019-09-27 17:46:38 1997
:还没买,:已经买了Linux方面:《Linux操作系统之奥秘》()《UNIX操作系统设计》()鸟哥的Linux私房菜——服务器架设篇(第二版)()C++:《C++primer》()C语言:《C和指针》()操作系统:《操作系统概念》()算法:《算法导论》()MySQL:《MySQL权威指南》《MySQL性能调优与架构设计》Spring:《SpringinAction》()我的书籍--持续更新中
系统 2019-08-29 22:38:41 1997
Python之读取用户指令和格式化打印一、读取用户指令当你的程序要接收用户输入的指令时,可以用input函数:name=input("请输入你的名字:")print("Hi"+name)程序中只要有input函数就会等待用户输入完并按回车键之后才会继续往下执行代码注:input()函数接收得到的值只是字符串,即使你输入的是数字或者其他数据类型的值,它也会把数字按照字符串处理,即接收得到值只会字符串。二、格式化打印假设现在需要打印出以下格式的内容,该怎么实现
系统 2019-09-27 17:56:58 1996
前言在Windows上编写python程序时,有时候需要对输出的文字颜色进行设置,特别是日志显示,不同级别的日志设置不同的颜色进行展示可以直观查看。本文主要描述通过ctypes.windll.kernel32调用GetStdHandle()和SetConsoleTextAttribute()两个API实现来实现Windows控制台的彩色背景及彩色文字。基本概念描述首先分别介绍GetStdHandle()和SetConsoleTextAttribute()这
系统 2019-09-27 17:49:30 1996
相对来说python对字符串的处理是比较高效的,方法也有很多。其中maketrans和translate两个方法被应用的很多,本文就针对这两个方法的用法做一总结整理。首先让我们先回顾下这两个方法:①s.translate(table,str)对字符串s移除str包含的字符,剩下的字符串按照table里的字符映射关系替换。table可以理解为转换表,比较'a'->'A','b'->'B'.②tabel=string.maketrans('s1','s2')s
系统 2019-09-27 17:45:59 1996
SimpleFactory模式//抽象音乐盒接口publicinterfaceIMusicBox{publicvoidplay();}//钢琴音乐盒publicclassPianoBoximplementsIMusicBox{publicvoidplay(){System.out.println("拨放钢琴音乐:)");}}//小提琴音乐盒publicclassViolinBoximplementsIMusicBox{publicvoidplay(){Sy
系统 2019-08-29 23:45:06 1996
'''进程间的通信'''"""multiprocessing模块支持进程间通信的两种主要形式:管道和队列都是基于消息传递实现的,"""frommultiprocessingimportQueueq=Queue(3)#put,get,put_nowait,get_nowait,full,emptyq.put(1)q.put(2)q.put(3)#q.put(1)#队列已经满了,再加程序就会一直停在这里,等待数据被别人取走,不取走就一直停在这##q.get(1
系统 2019-09-27 17:55:59 1995
C++类函数封装给python调用,大致分为三个部分,第一部分是把我们的C++类函数等封装成一个dll,即动态库。第二部分是生成一个绑定代码,就是用shiboken2根据我们需要封装暴露的文件,生成pythonC++代码。然后第三部分,就是根据第一和第二部分生成的库和代码,进一步封装成py库。然后python文件直接可以调用该库。具体代码如下,源码用的是python的官方源码。主要讲解每个部分的使用。源码:------------------icecrea
系统 2019-09-27 17:55:19 1995