Python
文章平均质量分 71
wh62592855
这个作者很懒,什么都没留下…
展开
-
PYTHON单元测试模块unittest
一些基本概念test fixture A test fixture represents the preparation needed to perform one or moretests, and any associate cleanup actions.原创 2011-09-18 22:43:05 · 2187 阅读 · 0 评论 -
python的模块base64
base64模块真正用的上的方法只有8个,分别是encode, decode, encodestring, decodestring, b64encode,b64decode, urlsafe_b64decode,urlsafe_b64encode。他们8个可以两两分为4组,encode,decode一组,专门用来编码和 解码文件的,也可以对StringIO里的数据做编解码;encodestrin转载 2011-10-23 13:52:45 · 1594 阅读 · 0 评论 -
python __import__简介
下面先看个小例子[wanghai01@tc-crm-rd03 test]$ cat a.pydef func1(): print 'in a.func1'[wanghai01@tc-crm-rd03 test]$ cat c.py package = 'test'module = 'a'def func2(): p = __import_原创 2011-11-01 11:45:52 · 13211 阅读 · 0 评论 -
Python 装饰器与面向切面编程
什么是AOP##############今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。1. 装饰器入门1.1. 需求是怎么来的?转载 2011-03-07 16:44:00 · 1306 阅读 · 1 评论 -
python 私有机制
从这篇文章开始,我就开始分享几个python oop方面的一些特点,希望对大家理解python的oop有帮助,其实python的oop相对其他的语言来说是有些地方不同的。我今天就讲下其中的一方面私有机制的问题。其他的语言,比如JAVA,C++的oop语法都比较的规范,有公有,私有和保护的数据类型,而python的话,从我目前的观察来看,python的类是没有权限控制的,所有变量都是可以被外转载 2011-09-14 09:13:16 · 1112 阅读 · 0 评论 -
python rpyc 远程调用
rpyc (Remote Python Call)为分布式计算环境提供了优良的基础平台。 使用rpyc编写c/s结构程序,完全不用考虑老式的socket编程,现在只用编写简单的3、5行代码即可完成以前的数千行代码的功能。以简单实例讲解:服务端:# coding:utf-8from rpyc import Servicefrom rpyc.utils.serverimpor转载 2011-11-01 21:30:42 · 14145 阅读 · 1 评论 -
学习python的利器-ipython
什么是ipython?ipython是python交互式shell, 它支持代码自动补全,支持高亮,支持shell命令;我个人觉得ipython最大的好处就是代码自动补全(同时它会列出模块里的类、函数、变量,这样对于学习某一个模块太有帮助了),如图:在敲urllib2.的时候按下tab键,就给你列出urllib2模块的所有类、函数、方法了安装ipython:对于ubuntu转载 2011-11-01 21:51:15 · 24183 阅读 · 1 评论 -
Python中的pprint和pformat简介
pprint模块中使用的格式化可以按照一种格式正确的显示数据, 这种格式即可被解析器解析, 又很易读. 输出保存在一个单行内, 但如果有必要, 在分割多行数据时也可使用缩进表示.import sysimport pprintpprint.pprint(sys.path)运行结果:[ 'C:\\WINDOWS\\system32\\python26.zip转载 2011-11-01 10:49:57 · 7005 阅读 · 0 评论 -
Iterator 和 Generator的学习心得
Iterator是迭代器的意思,它的作用是一次产生一个数据项,直到没有为止。这样在 for 循环中就可以对它进行循环处理了。那么它与一般的序列类型(list, tuple等)有什么区别呢?它一次只返回一个数据项,占用更少的内存。但它需要记住当前的状态,以便返回下一数据项。它是一个有着next()方法的对象。而序列类型则保存了所有的数据项,它们的访问是通过索引进行的。使用Iterator的好转载 2011-11-01 22:40:48 · 1299 阅读 · 0 评论 -
python list排序
很多时候,我们需要对List进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序方法2.用built-in函数sorted进行排序(从2.4开始)这两种方法使用起来差不多,以第一种为例进行讲解:从Pyt转载 2011-10-18 09:49:56 · 13527 阅读 · 0 评论 -
Python SQLAlchemy
下面是一些学习链接一篇比较简单的博客讲解http://gashero.yeax.com/?p=6#id13官方文档http://www.sqlalchemy.org/docs/还有本书叫做Essential SQLAlchemy原创 2011-10-14 10:59:36 · 1594 阅读 · 0 评论 -
PYTHON 回调函数
#######百度百科上对回调函数的解释#######回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另原创 2011-08-22 21:14:29 · 20009 阅读 · 2 评论 -
python中 __name__及__main()__的妙处
#hello.pydef sayHello(): str="hello" print(str);if __name__ == "__main__": print ('This is main of module "hello.py"') sa转载 2011-08-23 11:20:06 · 2074 阅读 · 0 评论 -
Eclipse和PyDev搭建Python开发环境(Windows篇)
1.准备工作: 下载32位的JDK6 Java的开发包 我也不想装这玩意儿,但是Eclipse依赖他,没办法。下载32位的Eclipse(注1) 下载Python 2.x(注2) 2.安装JDK6 JDK的安装很容易的,一般一直点下一转载 2011-09-22 11:36:12 · 1242 阅读 · 0 评论 -
Python的descriptor
如果你和我一样,曾经对method和function以及对它们的各种访问方式包括self参数的隐含传递迷惑不解,建议你耐心的看下去。这里还提到了Python属性查找策略,使你清楚的知道Python处理obj.attr和obj.attr=val时,到底做了哪些工作。Pyth转载 2011-08-30 00:50:28 · 1533 阅读 · 0 评论 -
python之sqlite3使用详解
Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它使用一个文件存储整个数据库,操作十分方便。它的最大优点是使用方便,功能相比于其它大型数据库来说,确实有些差距。但是性能表现上,SQLITE并不逊色。麻雀转载 2011-09-27 12:43:51 · 1536 阅读 · 0 评论 -
Python中的*args和**kwargs
先来看个例子:def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '--------------------------------------转载 2011-10-10 16:15:52 · 5491 阅读 · 2 评论 -
Python中的property()
大家也许知道C#中提供了属性Property这个概念,让我们在对私有成员赋值、获取时更加方便,而不用像C++分别定义set*和get*两个函数,在使用时也就像直接使用变量一样。今天突然发现Python中竟然也提供了如此类似的方法,感到甚为亲切,发上来大家一起讨论一下,有不妥的转载 2011-10-10 16:42:10 · 1360 阅读 · 1 评论 -
Python: pydoc 和 distutils 模块
pydocKa-Ping Yee 曾创建了一个相当著名的模块,名叫 pydoc (比较而言: pydoc 可以做到perldoc 所能做的任何事,并且做得更好、更漂亮:-)。对于Python 2.1 来说,pydoc (以及它支持的inspect )是标准库的一部分。而对转载 2011-10-11 17:36:32 · 2173 阅读 · 0 评论 -
Python中的__metaclass__=type什么意思
PYTHON中的new classhttp://wiki.woodpecker.org.cn/moin/PyNewStyleClass################分享下自己对python的metaclass的知识。一 你可以从这里获取什么?1. 也许你在阅读别人的代码的时候碰到过metaclass,那你可以参考这里的介绍。2. 或许你需要设计一些底层的库,也许met转载 2011-10-10 15:22:59 · 3505 阅读 · 0 评论 -
python中的 new-style class 及其实例详解
1.1. 5.2 new-style Class 及其实例前面我提到 python 2.2 中引入了 new-style 对象模型. new-style class 及其实例与 Classic class 一样, 都是顶级对象。 它们可以拥有任意的属性, 通过调用类对象生成该类的一个实例对象. 在这一小节,我来向大家揭示新的对象模型及传统对象模型的不同.从 python 2.2转载 2011-11-01 22:18:26 · 2952 阅读 · 0 评论 -
Understanding Python's "for" statement
One of the things I noticed when skimming through the various reactions to my recent “with”-article is that some people seem tohave a somewhat fuzzy understanding of Python’s other block statement,the转载 2011-11-01 22:34:02 · 930 阅读 · 0 评论 -
使用PDB调试PYTHON程序
官方文档http://docs.python.org/library/pdb.html使用ECLIPSE开发PYTHON的可以看看下面这篇文章http://wenku.baidu.com/view/e52edcd428ea81c758f578ae.html习惯在命令调试的参考下面贴的两篇博客================Python自带了一个调试器叫pdb,和Gn转载 2011-12-28 21:10:51 · 3033 阅读 · 0 评论 -
python logging模块如何把不同内容定向到不同的输出
之前用logging模块的时候只是上网随便搜了个贴子,看了看大致方法就直接用了。现在遇到一个问题,就是之前在为logger对象添加handler的时候,在配置文件中使用的是StreamHandler,并且指定输出到stdout(默认是stderr),而由于在程序中只是使用了到了一个logger和一个handler,因此所有日志等级(INFO,DEBUG,ERROR等等)都被重定向到了一个地方,那就原创 2012-01-04 19:56:45 · 8474 阅读 · 0 评论 -
python之类的构造和析构函数
本文转自http://hi.baidu.com/abigbigman/blog/item/7dbda194df18ec01d31b7018.htmlpython的构造和析构函数为固定的名字。构造函数--------------------- __init__( self )析构函数--------------------- __del__( self )转载 2012-03-29 11:03:07 · 25814 阅读 · 0 评论 -
python super()
一、问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(self): print "enter A" print "leave A" class B(A): def __init__(self):转载 2012-03-19 12:52:06 · 959 阅读 · 0 评论 -
测量Python代码运行的时间
Python 社区有句俗语: “python自己带着电池” ,别自己写计时框架。 Python 2.3 具备一个叫做 timeit 的完美计时工具可以测量python代码的运行时间。timeit 模块timeit 模块定义了接受两个参数的 Timer 类。两个参数都是字符串。 第一个参数是你要计时的语句或者函数。 传递给 Timer 的第二个参数是为第一个参数语句构建环境的导入转载 2012-08-22 11:42:03 · 1558 阅读 · 0 评论 -
Global and Local Variables
Global and local Variables in FunctionsLet's have a look at the following function:def f(): print s s = "I hate spam"f()The variable s is defined as the string "I hate spam", before we转载 2012-08-22 11:51:34 · 1348 阅读 · 0 评论 -
Efficient String Concatenation in Python
IntroductionBuilding long strings in the Python progamming language can sometimes result in very slow running code. In this article I investigate the computational performance of various string conc转载 2012-08-22 13:45:50 · 2282 阅读 · 0 评论 -
python 内存泄露的诊断
对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是有了“内存泄露”一、内存泄露的原因对于 python 这种支持垃圾回收的语言来说,怎么还会有内存泄露? 概括来说,有以下三种原因:1、 所用到的用 C 语言开发的底层模块中出现了内存泄露。2、 代码中用到了全局的 list、 dict 或其它容器,不停的往这些转载 2012-12-15 16:52:17 · 3123 阅读 · 0 评论 -
Python字符串的encode与decode
本文转自:http://ipie.blogbus.com/logs/19379694.html首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unic转载 2011-12-27 21:59:22 · 909 阅读 · 0 评论 -
SqlAlchemy: (OperationalError) (2006, ‘MySQL server has gone away’)
What is this problem about:This is actually MySQL error message. It means that there are no MySQLconnections anymore.By MySQL default, idling database connections will be closed after 8 hours. N转载 2011-12-14 23:39:46 · 3938 阅读 · 0 评论 -
What does functools.wraps do?
When you use a decorator, you're replacing one function with another. In other words, if you have a decoratordef logged(func): def with_logging(*args, **kwargs): print func.__name__ + "转载 2011-12-16 21:37:38 · 1959 阅读 · 0 评论 -
Python 使用 subprocess 调用外部命令
从 Python 2.4 开始,Python 引入 subprocess 模块来管理子进程,以取代一些旧模块的方法:如os.system、os.spawn、os.popen、popen2.*、commands.*。subprocess 不但可以调用外部的命令作为子进程,而且可以连接到子进程的 input/output/error 管道,获取相关的返回信息。使用 subprocess 模转载 2011-11-23 10:01:25 · 4056 阅读 · 0 评论 -
Python doctest
>>> def median(pool): '''Statistical median to demonstrate doctest. >>> median([2, 9, 9, 7, 9, 2, 4, 5, 8]) 7 ''' #代码的文档,功能说明。如果运行以上参数,期望结果是7 copy = sorted(pool) size = l转载 2011-11-24 17:18:29 · 3867 阅读 · 0 评论 -
Logging模块的简单使用
以前看过,但一直认为很复杂。象 NewEdit 都是自已写的日志处理。其实 logging 做得很好,也不是很复杂,只要看明白例子。在新发布的crawl 2.1.1中使用了logging,下面把它的使用代码写出来,很简单:def initlog(): import logging logger = logging.getLogger() hdlr =转载 2011-11-24 17:27:18 · 976 阅读 · 0 评论 -
Python特殊语法:filter、map、reduce、lambda、yield
Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力!filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:>>> def f(x): return x % 2 != 0 and x %转载 2011-11-04 17:27:09 · 5312 阅读 · 0 评论 -
Python模块学习 -- StringIO, cStringIO 内存文件
StringIO的行为与file对象非常像,但它不是磁盘上文件,而是一个内存里的“文件”,我们可以将操作磁盘文件那样来操作StringIO。一个简单的例子,让你对StringIO有一个感性的认识:#coding=gbk import StringIO, cStringIO, sys s = StringIO.StringIO("JGood is a handsome boy")s.w转载 2011-11-28 14:30:12 · 2777 阅读 · 0 评论 -
python __str__(self) __unicode__(self)
__str__Model.__str__()__str__() is a Python "magic method" that defines what should be returned if you call str() on the object. Django uses str(obj) (or the related function, unicode(obj) --转载 2011-11-07 16:27:47 · 9540 阅读 · 1 评论 -
Python模块学习 -- pickle, cPickle 对象序列化/反序列化
上次学习过marshal模块用于序列化和反序列化,但marshal的功能比较薄弱,只支持部分内置数据类型的序列化/反序列化,对于用户自定义的类型就无能为力,同时marshal不支持自引用(递归引用)的对象的序列化。所以直接使用marshal来序列化/反序列化可能不是很方便。还好,python标准库提供了功能更加强大且更加安全的pickle和cPickle模块。cPickle模块是使用C语言转载 2011-11-28 14:33:48 · 1585 阅读 · 0 评论