Python
bestchenwu123
这个作者很懒,什么都没留下…
展开
-
Python 逆序打印字符串
假定有一个字符串'abcde',要求在一次迭代循环里就打印完这个字符串: [code="python"] str='abcde' for i in range(-1,-len(str),-1) : print str[:i]; [/code] 输出结果如下所示: [code="python"] abcd abc ab ...原创 2011-04-13 19:07:00 · 825 阅读 · 0 评论 -
Python MetaClass
metaclass的原理其实是这样的:当定义好类之后,创建类的时候其实是调用了type的__new__方法为这个类分配内存空间,创建好了之后再调用type的__init__方法初始化(做一些赋值等)。所以metaclass的所有magic其实就在于这个__new__方法里面了。 说说这个方法:__new__(cls, name, bases, attrs) cls: 将...原创 2011-05-19 20:50:41 · 81 阅读 · 0 评论 -
Python 连接MySQL(Windows版本)
先来一段MySQLdb(类似于mysql用于Java的连接Jar包)的幽默介绍: Windows ....... I don't do Windows. However if someone provides me with a package for Windows, I'll make it available. Don't ask me for help wit...原创 2011-05-23 21:54:18 · 448 阅读 · 0 评论 -
Python 多线程
其实自我感觉Python的多线程很类似于Java的多线程机制,但是比JAVA的多线程更灵活。在早期的Python多线程实现中,采用了thread模块。例如: from time import ctime,sleep from thread import start_new_thread def loop1(): print "enter loop1:",c...原创 2011-05-29 10:25:38 · 94 阅读 · 0 评论 -
Python 安装Jython并且在Pydev开发Jython应用
其实严格说,这篇文章不能算是一个python的专栏,只是作为小小Javaer,想看看鼎鼎大名的语言融合剂Python是怎么整合java的。当然这里的整合,全拜jython所赐。 先来介绍下Jython的安装方法(有史以来见过的最简单的安装): 1:下载最新版 jython 。下载地址:http://www.jython.org/ 这里完全假定你...原创 2011-05-29 17:20:27 · 360 阅读 · 0 评论 -
Python中迭代
迭代器的用法在 Python 中普遍而且统一。在后台,for 语句在容器对象中调用 iter() 。 该函数返回一个定义了 next() 方法的迭代器对象,它在容器中逐一访问元素。没有后续的元素时,next() 抛出一个 StopIteration 异常通知 for 语句循环结束。 了解了迭代器协议的后台机制,就可以很容易的给自己的类添加迭代器行为。定义一个 __iter__()...原创 2011-04-10 19:42:36 · 89 阅读 · 0 评论 -
Python中查找模块API的方法
第一种方法: 在Python解释器里输入help(某个模块或者某个类) 第二种方法: 在Windows里面安装完成后,有个Module Docs的连接。启动这个,然后选择open brower,就会出现一个本地服务器为你提供模块文档。如果和JavaDoc完全一样就是JavaDoc了,这是Python,结构当然会有所不同,不过内容还是比较详细的。...2011-04-10 19:45:40 · 766 阅读 · 0 评论 -
Python抛出异常的方法
抛出异常的方式有两种方式: 第一种方式: [code="python"] raise Class,instance [/code] 第一种形式中instance必须是class或其一子类的实例 第二种方式: [code="python"] raise instance; [/code] 第二种形式事实上是 [code="python"] raise...原创 2011-04-10 19:47:32 · 1095 阅读 · 0 评论 -
Python里加入中文的方法
在文件顶部加上 [code="python"] # coding=gbk [/code] 然后在含有中文的地方,加入unicode前缀。原创 2011-04-10 19:48:31 · 508 阅读 · 0 评论 -
Python编程风格指南
这篇文档所给出的编码约定适用于在主要的Python发布版本中组成标准库的Python代码,请查阅相关的关于在Python的C实现中C代码风格指南的描述。 这篇文档改编自Guido最初的《Python风格指南》一文,并从《Barry's style guide》中添加了部分内容。在有冲突的地方,Guide的风格规则应该是符合本PEP的意图(译注:指当有冲突时,应以Guido风格为准)...原创 2011-04-10 19:54:27 · 114 阅读 · 0 评论 -
Python Property函数
通常我们在访问和赋值属性的时候,都是在直接和类(实例的)的__dict__打交道,或者跟数据描述符等在打交道。但是假如我们要规范这些访问和设值方式的话,一种方法是引入复杂的数据描述符机制,另一种恐怕就是轻量级的数据描述符协议函数Property()。它的标准定义是: property(fget=None,fset=None,fdel=None,doc=None) 前面3个参数都...原创 2011-05-19 09:35:10 · 138 阅读 · 0 评论 -
Python classMethod描述符
通常情况下,如果我们要使用一个类的方法,那我们只能将一个类实体化成一个对象,进而调用对象使用方法。 比如: class C(object): def boo(self): print "boo"; @classmethod def foo(cls): print "foo"; c=C(); c...原创 2011-05-18 14:17:02 · 91 阅读 · 0 评论 -
Python Descriptor描述符
最近看了http://www.iteye.com/wiki/Python/1362-python-39-s-descriptor这位老兄写的关于Python描述符的文章,觉得他写的也过于繁杂。所以不妨自己也小试一把。 在Python中,访问一个属性的优先级顺序按照如下顺序: 1:类属性 2:数据描述符 3:实例属性 4:非数据描述符 5:__...原创 2011-05-17 21:44:27 · 117 阅读 · 0 评论 -
Python 推荐的连接字符串方法
推荐使用String模块的join()方法,例如: 以前要连接多个字符串,通常都这样做: str1="abc" str2="def" str3="ghi" print str1+str2+str3 #print ''.join([str1,str2,str3]); 而现在则应该这样做,效率会更高: str1="abc" str2="def" str3="ghi&qu原创 2011-04-13 20:00:27 · 94 阅读 · 0 评论 -
Python 字典与字符串结合输出的例子
在字典中使用字符串格式符的方法,用字典参数来简化print语句: dict1={'howmany':1,'where':'wuhan'}; print "%(where)s has %(howmany)s bridge" % dict1原创 2011-04-16 08:23:30 · 909 阅读 · 0 评论 -
Python 字典的比较方法
在Python 中 字典的比较顺序如下所示: 字典的长度比较===>字典的键值比较(严格按照hasKeys()的顺序)===>各键值对应的值原创 2011-04-16 08:31:36 · 236 阅读 · 0 评论 -
Python with的用法
在Python中,with关键字是一个替你管理实现上下文协议对象的好东西。例如:file等。示例如下: from __future__ import with_statement with open('cardlog.txt','r') as item : for line in item : print line; 在file的结束,会自动...原创 2011-04-30 07:34:07 · 114 阅读 · 0 评论 -
Python 模拟JAVA AOP
from time import ctime,sleep; def testFunction(func): def wrapFunction(): print "call func on %s,funcName is %s" % (ctime(),func.__name__); return func(); return wrapFun...原创 2011-05-04 09:29:36 · 127 阅读 · 0 评论 -
Python中type与Object的区别
初学Python的时候,对定义类的时候,为选择括号内是写object还是type而苦恼。在查看了Python的API后,总算明白了。现在总结如下: 先来看object的说明: Python中关于object的说明很少,甚至只有一句话: class object The most base type 从介绍上看这也是Pyt...原创 2011-05-15 20:03:10 · 330 阅读 · 0 评论 -
Python中子类调用父类的初始化方法
在Python中子类继承父类的过程中,如果子类不覆盖父类的__init__()方法,则子类默认将执行与父类一样的初始化方法。但是假如子类自己重写了(也成为覆盖)父类的__init__()方法,那么就需要显式的调用父类的初始化方法了。有两种方法可以做到: 1:ParentClass.__init__(),父类名加上init函数 2:super(type,cls)._...原创 2011-05-15 20:25:37 · 513 阅读 · 0 评论 -
Python中__builtins__和__builtin__的区别
__builtins__和__builtin__同为Python内置模块,却有着截然不同的东西。 __builtins__包含内建名称空间中内建名字的集合,其中大部分来自于__builtin__模块 而后者除此之外还包括内建函数,异常以及其他属性。像我们熟悉的object,type等等类的定义都在__builtin__中...原创 2011-05-15 20:56:06 · 388 阅读 · 0 评论 -
Python中让变量私有化&Slots
由于在Python中不支持private这样的私有化修饰符,所以如果想把一个类属性置为私有的话,方法就是在属性名前加上双下划线__,这样在编译后,就可以起到保护私有属性的作用 例如: 假如有个类Numstr有一个self.num属性 在加上双下划线后变成self.__num后,经过编译就形成了self.__Numstr__num了,可以有效的保护私有属性, ...原创 2011-05-15 21:17:46 · 153 阅读 · 0 评论 -
Python核心编程 取随机数
《Python核心编程》 5.17 生成一个具有N个元素的由随机数n组成的列表,其中N范围为1--100,n范围为1--2**32-1,再从该列表里随机挑选出N个元素出来,排序,显示 解答如下: [code="python"] import random; randomList=[]; subRandomList=[]; maxValue=2**31-1; ...原创 2011-04-12 20:24:51 · 136 阅读 · 0 评论