[翻译]移植代码到Python3(一)

移植代码到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"
ur"/.write/(.*?/)"
unicode(anything)

"hello world"
r"/.write/(.*?/)"    
str(anything)

新的bytes()数据类型

更多新奇的操作

-数据与文本间的区别并不总是很清楚

-一些系统API也接受bytes

-repr()不再避开非ASCII字符,当然不可打印字符和控制字符除外

-支持非ASCII字符做标示符

-但是不要使用!

-小心像拉丁文的字符


新I/O库
-基于Unicode设计
-目前正在用C改写以提高性能
-好消息:你不必考虑它

-3层:raw, buffered和text.

-重用代码的好方法

 

(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值