Dive into Python读书笔记3

XML,以及网络部分直接跳过了。

单元测试部分很好,但是我目前是小作坊式的开发,更注重效率,所以也略过。

以后有机会 会回来看这几章的。

1.map 和filter 是好东西 help() 或 dir() 一下吧

2.yield与生成器 这个生成器 就像STL 容器里的迭代器iterator

1 def fibonacci(max):
2     a, b = 0, 1
3     while a < max:
4         yield a
5         a, b = b, a+b
6 
7 for n in fibonacci(1000):
8     print n,

fibonacci(1000) 返回的是一个生成器对象。

for 循环会 自动的 调用生成器的方法 next()

看到这,好像发现新大陆了一样。for 循环的 工作机制 是不是 都这样。

dir()了一样 list 好像 没有 next() 方法。

但list对象有个iter(也叫__iter__)方法,会返回一个含有next方法的对象。

这样就对了,for循环 会对后面的 对象先调用iter(),然后得到一个迭代器 对象。再使用next() 进行遍历。

可以看下官方文档:http://docs.python.org/3/reference/compound_stmts.html#for

收获颇多啊,面向对象语言,无论python c++ 还是Java 其实现的 底层 都是相通的。

时间原因,不做深入分析 和 检验了。

3.for line in file(...) 比 read(...).split('\n') 简洁

4.后面还讲了字符串处理方面的 性能优化

原文地址:https://www.cnblogs.com/2010Freeze/p/3014392.html