随笔分类 -  Python

收集Python Recipes,记录Python学习过程
Python recipe(18):Monitor模式
摘要:代码: Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 6-6概述: 模拟Java中的Monitor模式,即所有方法都synchronized。Java中利用intrinsic锁来实现,这里我们用Wrapper把一个Lock和一个object绑定。代码说明:1. get_method_na... 阅读全文

posted @ 2010-05-30 00:19 tomsheep 阅读(1126) 评论(0) 推荐(1)

Python recipe(17):Future
摘要:代码何在? Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 6-5概述: 熟悉Java的童鞋都知道Java中有一个很好用的接口叫Future,表示异步计算的结果。他的有一个实现FutureTask,同时实现了Runnable接口。可以接受一个Callable做构造参数,异步执行该Calla... 阅读全文

posted @ 2010-05-29 00:05 tomsheep 阅读(385) 评论(0) 推荐(1)

Python recipe(16):ReadWriteLock
摘要:代码何在? Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 6-4概述: 不必多说,用Python实现的读写锁(ReadWriteLock):允许同时多个reader,但只能有一个writer,并且writer工作时reader也不能读代码说明:1.实现方法和其他语言没有太大区别,这里th... 阅读全文

posted @ 2010-05-28 23:13 tomsheep 阅读(911) 评论(1) 推荐(1)

Python recipe(15):获取类的所有成员
摘要:代码: Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 5-3概述: 获取一个类对象(非实例)的所有成员代码说明:1. python 新旧class: 旧式class不以object为根,如果type一个旧式class的实例,type(oldClassObj)的话总会返回<type ... 阅读全文

posted @ 2010-05-26 15:42 tomsheep 阅读(5188) 评论(0) 推荐(0)

Python recipe(14):遍历目录
摘要:代码何在? Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 4-18 4-19概述: 提供有筛选地便利目录功能代码说明:1. 最开始的mkdirs函数和这个walk功能不相干,是一个简单的创建目录函数,包装了os.mkdirs2. os.path.walk函数提供了便利目录的机制,list... 阅读全文

posted @ 2010-05-25 21:23 tomsheep 阅读(834) 评论(0) 推荐(0)

Python recipe(13):路径操作
摘要:代码何在? Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 4-16 4-17概述: 自定义path类对目录进行包装,重载了许多方便有用的运算符代码说明:1. os.path.split函数将路径分为两部分,(head,tail) ,tail是路径中最后一部分,如果path本身是绝对根目录... 阅读全文

posted @ 2010-05-25 18:11 tomsheep 阅读(360) 评论(0) 推荐(0)

Python recipe(12):改变stdout的输出模式
摘要:代码: Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 4-13概述: 利用msvcrt模块的setmode函数改变输出模式代码说明:1. 主要解释一下Windows系统中text模式和binary模式的区别(Unix系统无此差别):text模式读取时,会将’\r\n’中的回车符去掉,变为... 阅读全文

posted @ 2010-05-23 00:16 tomsheep 阅读(1226) 评论(0) 推荐(0)

Python recipe(11):读取ini配置文件
摘要:代码何在? Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 4-12概述: 利用ConfigParser模块读取ini文件,返回一个字典。ini文件的格式为[section1]option1 = value1option2 = value2…[section2]option1 = valu... 阅读全文

posted @ 2010-05-22 23:50 tomsheep 阅读(565) 评论(0) 推荐(0)

Python recipe(10):逐段处理文件
摘要:代码何在? Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 4-9概述: 逐段处理文件。自定义Paragraphs类,实现容器行为函数__getitem__代码说明:1.__getitem__函数可以使自定义类型具有容器行为,x[key]访问2.在编写代码时,一开始在tag1处没有使用tr... 阅读全文

posted @ 2010-05-22 22:48 tomsheep 阅读(334) 评论(0) 推荐(0)

Python recipe(9): 文件的逐词处理
摘要:代码何在? Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 4-8概述: 逐词处理给定文件。提供三种方法实现。第一种比较naive,并且假设了“单词”是由空格分隔的;第二种用正则表达式自定义“单词”的形式,更具有灵活性;第三种则使用了generator,将单词的产生和处理逻辑分开,结构更好... 阅读全文

posted @ 2010-05-22 20:58 tomsheep 阅读(528) 评论(0) 推荐(1)

Python recipe(8): Retieve line from file
摘要:代码何在? Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 4-5/4-6概述: 从文件中读取一行。getline函数返回指定行号的内容,randomLine随机返回一行。两种功能都分别用了两种方法实现。代码说明:1. getline1:使用linecache模块提供的函数,一般情况用这个... 阅读全文

posted @ 2010-05-22 17:56 tomsheep 阅读(447) 评论(0) 推荐(0)

Python recipe(7): 命名规则转换
摘要:代码何在? Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 3-16概述: 在不同的命名规则(如下划线分割法、驼峰法、词汇首字母大写法等)之间相互转换。给出两套方案:第一种利用re模块一对一地转换,这种方法不太具有拓展性,一旦命名规则种类增多,需添加大量转换函数;第二种提供了一种通用的中间... 阅读全文

posted @ 2010-05-21 23:41 tomsheep 阅读(516) 评论(0) 推荐(1)

Python recipe(6): String Substitution
摘要:代码何在? Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 3-15概述: 利用正则表达式完成字符串替换,接受一个字符串与一个字典(字典储存了替换原则),返回替换后的字符串拷贝。给出两种方法,一种基于lambda,另一种基于可调用对象——可以这样做的原因是python中re模块的sub方法... 阅读全文

posted @ 2010-05-21 21:07 tomsheep 阅读(962) 评论(0) 推荐(1)

Python recipe(5):Indentation
摘要:代码先行: Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 3-12概述: 对多行字符块进行缩进。其中reindent函数首先左对齐(删除空白),然后添加相应数量空白符;addSpaces不删除每行开头原有的空白符;delSpaces函数去除每行相应数目的空白符;numOfSpaces计算... 阅读全文

posted @ 2010-05-21 00:53 tomsheep 阅读(394) 评论(0) 推荐(0)

Python recipe(4):Substrings
摘要:代码先行: Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码改写自Python Cookbook 3-11概述: 给出两种取子字符串的方法:第一种比较naive,依赖下标做slicing;第二种借助python内建struct模块解析字符串代码说明:1. 第一种方法中有一个trick,zip([0]+cuts, cuts) 使... 阅读全文

posted @ 2010-05-20 23:43 tomsheep 阅读(382) 评论(0) 推荐(0)

Python recipe(3):Reverse String
摘要:代码先行: Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码来自Python Cookbook 3-10概述: 无需多说,反转字符串。BTW,我很纳闷为什么这样的操作不是string内建的……代码说明:1. list的reverse函数:反转一个list2. string的join和spilt函数分别&... 阅读全文

posted @ 2010-05-20 22:40 tomsheep 阅读(2123) 评论(0) 推荐(0)

Python recipe(2): Charset Filter
摘要:先贴代码: Example Source Code [http://www.cnblogs.com/tomsheep/] 以上代码来自Python Cookbook 3-8概述: 给定一个想要保留的字符集(keep),创建一个filter使其能过滤掉keep之外的字符。这里的makefilter返回值为一个functor,接受三个参数(其中两个有默认值)。canonicform函数实际是对mak... 阅读全文

posted @ 2010-05-20 20:12 tomsheep 阅读(427) 评论(0) 推荐(0)

Python recipe(1) : DSU
摘要:废话少说,先贴代码: Example Source Code [http://www.cnblogs.com/tomsheep/]  代码来自Python Cookbook 2-7如代码所示,这是两种“按属性排序”的方法,第一种比较直观,但1)效率较低,因为decorate和undecorate都是O (N), 算法复杂度主要依赖于sort的O(NlogN), 所... 阅读全文

posted @ 2010-05-20 18:24 tomsheep 阅读(835) 评论(0) 推荐(1)

导航