关于本书html
关于术语python
序app
欢迎来到Python 3框架
是时候了吗?函数
若是我如今不能切换会怎么样?测试
Python 和它的版本url
更多资源spa
迁移策略.net
仅支持Python 3code
Python 2和Python 3的单独分支
使用2to3转换到Python 3
使用Distribute来支持2to3转换
无需转换支持Python 2 和 Python 3
使用3to2
哪一种策略适合你?
应用
Python模块和包
框架
结论
为Python3做准备
在Python 2.7下运行
当除以整数时用//代替/
使用新式的类
单独的二进制数据和字符串
当排序时,使用key来代替cmp
使用丰富的比较运算符
相对棘手的
实现 __hash__()
确保你没有用任何一个被移除的模块
测试覆盖率和tox
可选:在字典中使用迭代器方法(iterator-methods)
2to3
使用2to3
明确的固定器(fixers)
分发包
在安装时执行2to3
使用Distribute支持多个版本的Python
使用Distribute运行测试
使用Distribute运行2to3
常见的迁移问题
不正确的引入(import)
相对引入问题
Unorderable类型、__cmp__和cmp
排序
排序Unicode
字节、字符串及Unicode
字节文字
在Python 2和Python 3中的二进制数据
更好的解决办法
操做二进制数据
从文件中读取
取代UserDict
CSV API 的变化
执行文档测试
write()返回一个值
类形(Types)如今是类(classes)
处理预期的异常
字符表达
dict 和set的顺序
使用现代风格改善你的代码
使用 sorted() 来替代 .sort()
使用上下文管理器来编写代码
高级字符串格式化
类修饰器
集合
yield 和 生成器
更多的推导式
新的模块
abc
multiprocessing 和 future
numbers 和 fractions
不使用2to3转换支持Python 2和Python 3
支持print()函数
处理异常
导入错误
整数不兼容
更多的字节、字符串和Unicode
二乘三是”six(六)“
迁移C扩展
在你开始前
对像初始化
模块初始化
在Python中的变化
Strings 和 Unicode
使用你本身的固定器扩展2to3
何时固定器是必须的
Parse Tree(解析树)
建立一个固定器
修改解析树
使用Patterns找到节点
语言区别和暂时解决方法
apply()
buffer()
callable()
Classes
Comparisons
coerce() and __coerce__
字典方法
except
Exception对象
exec
execfile
file
filter()
Imports
缩进
input()和raw_input()
整数相除
long
map()
元类
.next()
参数解包
print
raise
range()和xrange()
repr()看成反撇号
凑整行为
切片操做方法
StandardError
字符串类型
重组和重命名
标准库
urllib、urllib2和urlparse
移除的模块
被移动的内置函数
string模块调动
函数及方法属性的重命名