1.什么时候用继承
如果该类的属性和方法用得到,但是功能不够完善,
则可以通过继承给该类扩展属性和功能
2._和 __的区别?
2)单线划线方法,打点调用不提示,但是可以正常使用
3)双下划线方法,打点调用不提示,且不能强制使用
3.类外如何访问_和__属性(方法)
可以通过对象._类名__方法名来调用
4.子类重写父类属性有什么特点
在子类中,有一个和父类同名的方法,且子类的方法会覆盖掉父类的同名方法
如果需要扩展该方法,则需要先使用super调用父类方法再实现自己的功能
5.子类访问一个不存在的属性或方法会怎么样
1)先在本类中查找是否拥有该属性/方法
2)如果没有,查找父类中是否拥有该属性/方法
3)如果没有,继续向上查找
4)如果最后还是没有,则报错
6.如何查看子类的继承查找顺序
新式类采用了广度优先
经典类采用了深度
7.新式类和经典类分别采用什么搜索算法?
新式类采用了广度优先搜索,经典类采用了深度优先搜索
8.为什么要重写父类以及如何重写/调用?
重写父类的方法的目的是为了给他扩展功能,父类的方法已经不能满足需求
9.类属性,对象属性,类方法,对象方法,静态方法的特点是什么
类属性:该属性被当前类/当前类对象共有
对象属性:该属性只能被当前对象使用
类方法的特点
# 1. 参数1是cls=class
# 2. 方法前有classmethod修饰
# 3. 该方法只能被类调用
# 4. 该方法中不能使用对象属性
对象/实例方法的特点
# 1. 参数1都是self
# 2. 该方法只能被对象/self调用
def a_eat(self):
print("a的对象/实例方法")
# 静态方法的特点
# 1. 参数没有self或cls
# 2. 该方法不能使用对象属性
# 3. 该方法通过类名/对象打点调用
10._repr_有什么用
这个函数,对应repr(object)这个功能。意思是当需要显示一个对象在屏幕上时,将这个对象的属性或者是方法整理成一个可以打印输出的格式。
11.什么叫多态
定义时的类型和运行时的类型不一致,则就是多态
12.什么叫鸭子类型
鸭子测试”可以这样表述:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”
13.python属于什么类型的语言