开发者学堂课程【Python入门 2020年版:新式类和经典类】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10389
新式类和经典类
内容简介
一、新式类和经典类
1.新式类和经典类的概念
2.区别
3.python2和 python3的区别框架图
一、新式类和经典类
#手动的指定 Student 类继承自 object
class Student(object):paas
#没有指定 dog 的父类,python3默认继承自 object
class Dog:
pass
现在定义了两个类,一个是 student,一个是 dog,这两个类后面写不写括号里的(object)都是相同的,写法是一样的。
1. 新式类和经典类的概念
(1) 新式类:继承自 object 的类我们称之为新式类
(2) 经典类:不继承自 object 的类
2.区别
(1)在 python2里,如果不手动的指定一个类的父类是 object,这个类就是一个经典类。
python2和 python3还有一个最大的区别就在于中文的指使,在 python2里默认不支持中文需要写一个代码。
代码:
#-*- coding:utf8-*- 有了这个代码在 python2里就不会出现报错情况。
例:
s=Student()
d=Dog()
print dir(s)
print dir(d)
这里 dir 的作用是列数里面的内容。
在 python2运行结果如下图:
结果明显 student 的属性比较多,而 dog 只有俩个属性。
因为 student 继承了 object,而 dog 里没有继承,所以里面有很多属性都不能用。
(2)在 python3里不存在经典类,都是新式类
s=Student()
d=Dog()
print (dir(s))
print (dir(d))
用同一个方式,在 python3里是没有区别的。
在 python3运行结果如下图:
建议写上(object),因为兼容性问题,假如没有 object 在 python3里是可以的,但是放在 python2里可能会出现许多问题。
3. python2和 python3的区别框架图