继承的简介
创建类时后面括号里的就是这个类的父类(也被成为超类,基类)
1.让类与类之间产生了关系,有了这层关系才有我们后续要说的多态
2.提高了代码的复用性
3.在创建类的时候,如果省略了父类,则默认父类为object,因为object是所有类的父类。
子类会继承父类的属性和方法
例如:
‘’’
class Animal:
def sleep(self):
print(‘动物会睡觉…’)
def run(self):
print(‘动物会跑…’)
class Dog(Animal):
pass
d = Dog()
d.run()
‘’’
输出:动物会跑…
pass是占位符防止class Dog(Animal):因为未定义内容而报错,此时Animal就是Dog的父类,当run()在Dog中找不到时,就会去Animal中找。如果子类和父类同时都有同一函数,则优先子类。
父类的父类也会被子类继承
检测函数
isinstance(a,b)可以检测a是否是b的实例,返回值为True或False,以上述函数为例,假如a=Dog()(a是Dog的实例)则a也是Animal的实例,b可以为一个元组,有多种类型,检测时做或运算。(instance的中文名词意思为实例)
issubclass(a,b)检查a是否是b的子类,返回True或False,当a为int,list之类,b为object时,返回值为True,因为int,list这些也是一个类,而object如前文所述是所有类的父类(subclass中文名词意思为子类,子集,亚纲)
hasattr(a,‘b’)判断a类中是否含有b方法,返回值为布尔值。
super
放在类的def__init__():下
super可以用于获取当前类的父类super().init(需要获取的父类def__init__():中的值)通过super不需要传递self,因为一个子类的父类不一定是一定的,可能发生变化,也有可能父类有了新的父类,使用super可以防止参数数量不匹配而发生的报错。
多重继承
在开发中尽量不要使用多重继承因为他会使代码变得很冗余。
多重继承即一个子类有多个父类,有的语言不支持多重继承,但python是支持多重继承的,父类和父类间要用,隔开。
在开发中尽量不要使用多重继承因为他会使代码变得很冗余。
当方法在子类中找不到时,会对他的父类从左到右依次寻找。