在Python中,with关键字是一个替你管理实现上下文协议对象的好东西。例如:file等。示例如下:from__future__importwith_statementwithopen('cardlog.txt','r')asitem:forlineinitem:printline;在file的结束,会自动关闭该文件句柄。在python2.6中,with正式成为了关键字所以在python2.5以前,要利用with的话,需要使用:from__future_
系统 2019-09-27 17:46:19 1857
本文介绍的关于Python时间日期处理,日期时间处理在实际应用场景中无处不在,所以这也成了编程语言中必不可少的模块,Python也不例外。但是,你知道在Python中有多少个相关的模块吗?datetime、time、calendar、dateutil、pytz等等。你知道有多少种数据类型吗?date、time、datetime、tzinfo、timedelta等等。有天我遇到这样的需求,想获取当前月的前一个月是几月,假设本月是2018年1月,那么上个月就是
系统 2019-09-27 17:46:11 1857
Python引入了一个机制:引用计数。引用计数python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。总结一下对象会在一下情况下引用计数加1:1.对象被创建:x=42.另外的别人被创建:y=x3.被作为参数传递给函数:foo(x)4.作为容器对象的一个元素:a=[1,x,'33']引用计数减少情况1.一个本地引用离
系统 2019-09-27 17:45:58 1857
本文定位:已将CPU历史数据存盘,等待可视化进行分析,可暂时没有思路。前面一篇文章(//www.jb51.net/article/61956.htm)提到过在linux下如何用python将top命令的结果进行存盘,本文是它的后续。python中我们可以用matplotlib很方便的将数据可视化,比如下面的代码:复制代码代码如下:importmatplotlib.pyplotaspltlist1=[1,2,3]list2=[4,5,9]plt.plot(l
系统 2019-09-27 17:45:54 1857
#汇率的转化rmb_str_value=input('请输入你要转化的人民币金额')rmb_int_value=eval(rmb_str_value)us_vs_rmb=6.77usd_value=rmb_int_value/us_vs_rmbprint('美元的金额',usd_value)
系统 2019-09-27 17:45:50 1857
在我以前介绍Python2.4特性的Blog中已经介绍过了decorator了,不过,那时是照猫画虎,现在再仔细描述一下它的使用。关于decorator的详细介绍在Python2.4中的What'snew中已经有介绍,大家可以看一下。如何调用decorator基本上调用decorator有两种形式第一种:复制代码代码如下:@Adeff():这种形式是decorator不带参数的写法。最终Python会处理为:复制代码代码如下:f=A(f)还可以扩展成:复制
系统 2019-09-27 17:38:31 1857
我们将要来学习python的重要概念迭代和迭代器,通过简单实用的例子如列表迭代器和xrange。可迭代一个对象,物理或者虚拟存储的序列。list,tuple,strins,dicttionary,set以及生成器对象都是可迭代的,整型数是不可迭代的。如果你不确定哪个可迭代哪个不可以,你需要用python内建的iter()来帮忙。>>>iter([1,2,3])>>>iter({1:2,2:4})>>>iter(1234)Traceback(mostrece
系统 2019-09-27 17:38:24 1857
实现代理的方式很多种,流行的web服务器也大都有代理的功能,比如http://www.tornadoweb.cn用的就是nginx的代理功能做的tornadoweb官网的镜像。最近,我在开发一个移动运用(以下简称APP)的后台程序(Server),该运用需要调用到另一平台产品(Platform)的API。对于这个系统来说,可选的一种实现方式方式是APP同时跟Server&Platform两者交互;另一种则在Server端封装掉Platform的API,AP
系统 2019-09-27 17:38:17 1857
GIL在Python中,由于历史原因(GIL),使得Python中多线程的效果非常不理想.GIL使得任何时刻Python只能利用一个CPU核,并且它的调度算法简单粗暴:多线程中,让每个线程运行一段时间t,然后强行挂起该线程,继而去运行其他线程,如此周而复始,直到所有线程结束.这使得无法有效利用计算机系统中的"局部性",频繁的线程切换也对缓存不是很友好,造成资源的浪费.据说Python官方曾经实现了一个去除GIL的Python解释器,但是其效果还不如有GIL
系统 2019-09-27 17:37:58 1857
1.使用测量工具,量化性能才能改进性能,常用的timeit和memory_profiler,此外还有profile、cProfile、hotshot等,memory_profiler用了psutil,所以不能跟踪cpython的扩展;2.用C来解决费时的处理,c是效率的代名词,也是python用来解决效率问题的主要途径,甚至有时候我都觉得python是c的完美搭档。常用的是Cython,直接把py代码c化然后又能像使用py包一样使用,其次是ctypes,效
系统 2019-09-27 17:37:43 1857