2009 4 12 12:08 PM 3621 次查看
分类:Python 标签:Python
Decorator模式一般被翻译成装饰模式,它主要是用于扩展已有的功能。
一般而言,扩展只需要继承即可。但因为继承是静态的,无法动态扩展,于是会有很大的局限性。
考虑一下Java的java.io.Reader类,它有很多子类,它们之间的组合如果都用继承来实现的话,我想会是超枯燥的。
所以当我们需要一个缓冲的文件读取器,我们不会去创建一个FileBufferedReader对象,而是像下面这样创建:
Reader reader = new BufferedReader(new FileReader(filename))
这样的好处就是,我们可以随意地动态组合这些功能,而不是为每种组合都创建一个类。
在静态语言里,要实现Decorator模式是很麻烦的,因为你可能需要定义3个类。
不过在Python这种动态语言里,你完全不需要定义类,因为函数本身就是可以扩展的。
2009 4 6 10:32 AM 1504 次查看
分类:Python 标签:Python
详细更新内容请看What's New in Python 3.1 alpha 2?。
看到有个自动填充数字的功能(以前要在大括号里写序号,不知道是否提供中途指定序号的功能):'{} {}'.format(1, 2) == '1 2'
其他没什么我关心的了,嘛,至少我觉得目前的2.6比3.x更出色。
2009 4 3 07:16 PM 2387 次查看
分类:Python 标签:Python
2009 4 2 02:24 PM 7183 次查看
分类:JavaScript 标签:JavaScript, jQuery
说到用JavaScript动态加载内容,一般都会想到AJAX。
但AJAX所用的XML其实并非必须,还有其他类型的数据结构(例如JSON和HTML)也可以实现。
而且AJAX有个很大的问题:由于JavaScript的安全限制,AJAX的跨域非常麻烦。
但如果使用JSONP的话,问题就很容易搞定了。
2009 3 30 09:13 AM 2327 次查看
分类:编程 标签:Google, 搞笑
以前曾提到过CHTML(中国人如何做爱)项目,这次grass-mud-horse(草泥马语)项目也启动了。
2009 3 30 12:57 AM 4440 次查看
分类:Python 标签:Python
直接看代码吧,没什么需要多说的。>>> '%x' % 1234
'4d2'
>>> hex(1234) # 这个比格式化字符串慢1个数量级,慎用
'0x4d2'
>>> int('4d2', 16)
1234
>>> eval('0x4d2') # 这个比int函数慢1个数量级,慎用
1234
2009 3 27 05:41 PM 1812 次查看
分类:Python 标签:Python, 性能
详情可以查看项目计划(这里还有个项目计划翻译),今年1季度的性能测试如下:
2009 3 26 10:50 PM 2920 次查看
分类:Python 标签:Python
今天看《What’s New in Python 2.5》时,发现了一个有趣的新语法,可以模拟C中的c ? x : y(之前是用and...or来模拟,代码读起来不够直观)。
2009 3 26 01:15 AM 4002 次查看
分类:编程 标签:性能
之前一直无视它,直到看到这篇《Python for Lisp Programmers》。
无法相信一门动态语言仅比C++慢1~2倍,看到后面才发现原来是编译成native code,并附有测试结果,有空我也去好好测试下~
2009 3 25 03:06 AM 6357 次查看
分类:Python 标签:Python
方法很简单,找出日志的地址,再遍历列出日志的内容。
因为单纯导出没用,还得转换成其他格式,所以我保存到一个列表里,每篇日志都对应其中的一个字典元素,字典的属性都用unicode编码。
然后dump出来,可以方便以后用Python进行再处理(默认为blogs.txt文件)。
并转换成了WordPress用的格式(默认为qzone.xml文件)。