Python2和Python3的区别
核心区别
1.Python2 默认编码方式ACSII,Python3默认编码utf-8
导致Python3的string只支持unicode的string,Python2支持str和unicode
2.Python3采用绝对路径方式进行import
避免Python2中导入标准库与绝对路径下的文件重名引发的问题
3.Python3只采用新式类,Python2有经典类和新式类
新式类:采用就近原则
class NewStyleClassA(object): var = 'New Style Class A' class NewStyleClassB(NewStyleClassA): pass class NewStyleClassC(object): var = 'New Style Class C' class SubNewStyleClass(NewStyleClassB, NewStyleClassC): pass if __name__ == '__main__': print(SubNewStyleClass.mro()) print(SubNewStyleClass.var) [<class '__main__.SubNewStyleClass'>, <class '__main__.NewStyleClassB'>, <class '__main__.NewStyleClassA'>, <class '__main__.NewStyleClassC'>,'object'>] New Style Class A
经典类:采用 广度优先原则
class NewStyleClassA(object): var = 'New Style Class A' class NewStyleClassB(NewStyleClassA): pass class NewStyleClassC(NewStyleClassA) var = 'New Style Class C' class SubNewStyleClass(NewStyleClassB, NewStyleClassC): pass if __name__ == '__main__': print(SubNewStyleClass.mro()) print(SubNewStyleClass.var) [<class '__main__.SubNewStyleClass'>, <class '__main__.NewStyleClassB'>, <class '__main__.NewStyleClassC'>, <class '__main__.NewStyleClassA'>,'object'>] New Style Class C
4.Python3中使用更加严格的缩进
Python2中一个tab和8个空格是等价的,Python3要么都使用tab要么都是四个空格
参考链接
https://blog.csdn.net/pangzhaowen/article/details/80650478
https://www.cnblogs.com/blackmatrix/p/5630515.html
https://www.runoob.com/python/python-2x-3x.html