移植代码到Python3
原英文文档地址:
http://peadrop.com/blog/2009/04/05/porting-your-code-to-python-3/
http://peadrop.com/slides/mp5.pdf
介绍:
什么是Python3
-不是完全重写
-不向前兼容的版本
-消除了旧有一些弊病
该报告的内容:
-主要的改动
-怎样移植代码
新变化:
-print是一个函数
-关键字参数
-全部采用Unicode
-新I/O库
-重新组织标准库
-迭代器
-特殊方法
-语法变化
print是一个函数
-不是一个大问题
-更加灵活
可定制字符串分隔符
可以重载它
-奇怪的>>sys.stderr语法没有了
Python2
Python3
关键字参数
-关键字参数必须明确写出来,不能以位置判定
-变参数函数需要
-迫使用户表明意图
语法
注意:错误信息非常奇怪
Unicode
所有字符串默认为Unicode
Python2 | Python3 |
---|---|
u"hello world" | "hello world" |
新的bytes()数据类型
更多新奇的操作
-数据与文本间的区别并不总是很清楚
-一些系统API也接受bytes
-repr()不再避开非ASCII字符,当然不可打印字符和控制字符除外
-支持非ASCII字符做标示符
-但是不要使用!
-小心像拉丁文的字符
新I/O库
-基于Unicode设计
-目前正在用C改写以提高性能
-好消息:你不必考虑它
-3层:raw, buffered和text.
-重用代码的好方法
(未完待续)