14)raise语句的语法改变。
字符串和字节串
1)Py3.0去除了unicode类型,现在字符串只有str一种类型,但它跟2.x版本的unicode几乎一样。
2)关于字节串。
数据类型
1)Py3.0去除了long类型,现在只有一种整型——int,但它的行为就像2.x版本的long。
2)新增了bytes类型,对应于2.x版本的八位串,定义一个bytes字面量的方法如下:
>>> b = b'china' >>> type(b)
str对象和bytes对象可以使用.encode() (str -> bytes) or .decode() (bytes -> str)方法相互转化。
>>> s = b.decode() >>> s 'china' >>> b1 = s.encode() >>> b1 b'china'
3)dict的.keys()、.items和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有dict.has_key(),用in替代它吧!
面向对象
1)引入抽象基类(Abstraact Base Classes,ABCs)。
2)容器类和迭代器类被ABCs化,所以cellections模块里的类型比Py2.5多了很多。
>>> import collections >>> print(' '.join(dir(collections))) Callable Container Hashable ItemsView Iterable Iterator KeysView Mapping MappingView MutableMapping MutableSequence MutableSet NamedTuple Sequence Set Sized ValuesView __all__ __builtins__ __doc__ __file__ __name__ _abcoll _itemgetter _sys defaultdict deque
另外,数值类型也被ABCs化。关于这两点。
(编辑:aniston)
|