python2与python3

1、range、xrange,dict.keys(), dict.values(), dict.items(),高阶函数map,filter,zip

python2中的这些东西都是直接返回一个列表

python3中都是返回一个可迭代对象,只有你要用值的时候,才会给你,节省内存

3、编码

python2的默认编码是ascii,因为Python诞生的时候还没有unicode。

python3的默认编码是utf-8,因此你不再需要在文件顶部写 # coding=utf-8 了。

4、字符串

python2中字符串有两种类型:unicode表示字符串,str表示字节串。

python3中字符串有两种类型:一种str表示字符串,bytes表示字节串。任何需要写入文本或者网络传输的数据都只接收bytes类型。

5、global、nonlocal

python2中只有global,没有nonlocal。

python3都有。

6、类中的super,子类中派生的新方法访问父类功能

在python2中:super(自己的类名,自己的对象).init

在python3中:super().init
7、新式类、经典类
新式类:但凡继承object的类及其子子孙孙类,都叫做新式类。python3中即使没有显示的继承object,也默认继承object类,所以python3中所有类都是新式类。
经典类:没有继承object的类及其子子孙孙类,都叫做经典类。只有python2中有经典类。python2中如果有一个类没有显示继承object,并不会自动继承object类。

原文地址:https://www.cnblogs.com/KbMan/p/11247737.html