当前位置:首页 >> 脚本专栏

python中子类与父类的关系基础知识点

在对于python中类的使用上,我们分出了子类和父类两种。对于这二者之间的关系,我们可以简单理解为继承。不过python中加入了实例的讨论,那么对于继承后的子类来说,父类的实例是否被继承又是我们所需要思考的问题。下面我们就子类和父类进行简单介绍,然后就二者之间的继承关系重点分析。

1.概念

子类和父类主要描述的是类之间的继承关系,即所属关系。继承的类可在被继承的类的基础上添加格外的参数和行为,新类称为子类,扩展类;被继承的类称为基类、父类或者超类。

2.继承关系

子类与父类的关系是 “is” 的关系,如上 Cat 继承于 Animal 类,我们可以说:

“A”是 Animal 类的实例,但,“A”不是 Cat 类的实例。

“C”是 Animal 类的实例,“C”也是 Cat 类的实例。

判断对象之间的关系,我们可以通过 isinstance (变量,类型) 来进行判断:

print('"A" IS Animal"A" IS Cat"C" IS Animal"C" IS Cat"color: #ff0000">Python实现子类调用父类的方法

python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法。如果一个方法在子类的实例中被调用,或者一个属性在子类的实例中被访问,但是该方法或属性在子类中并不存在,那么就会自动的去其父类中进行查找。

继承父类后,就能调用父类方法和访问父类属性,而要完成整个集成过程,子类是需要调用的构造函数的。

子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题
如果子类和父类都有构造函数,子类其实是重写了父类的构造函数,如果不显式调用父类构造函数,父类的构造函数就不会被执行,导致子类实例访问父类初始化方法中初始的变量就会出现问题。