首页 python基础教程 Python面向对象-面向对象的三大特性(封装、继承、多态)
pay pay

Python面向对象-面向对象的三大特性(封装、继承、多态)

日期: 2021年12月7日 16:25
栏目: python基础教程
阅读: 91
作者: python自学网

摘要: 在前面python面向对象的学习,我们主要学习类和对象的构造和一些内置属性和函数,主要是围绕着类和对象本身来深入探讨的,接下来我们将对类和类,对象和对象的关系来研究,也就是面向对象的三大特性:封装、继承、多态。

在前面python面向对象的学习,我们主要学习类和对象的构造和一些内置属性和函数,主要是围绕着类和对象本身来深入探讨的,接下来我们将对类和类,对象和对象的关系来研究,也就是面向对象的三大特性:封装、继承、多态。

在python面向对象中封装在之前的构造中已经详细讲解过了,多态在python中体现的并不是很成熟,或者说python没有实际意义上的多态,这一点到后面会有一节课演示给大家看,所以说我们研究的重点是在继承上。继承是指一个类拥有另一个类或者另几个类的属性和方法。

比如我们之前讲到的类的构造中有一个经典类:

class Name(object):
    pass

这里面Name类继承父类object,而在元类中我们讲过object又继承自type元类。立足于object类,我们可以这样描述这三个类的关系。type是元类,Name是子类。简单的讲向上描述一般用(父类、基类、元类、超类),向下描述一般用(派生类、子类),为了统一口径并且符合python称呼习惯,后面的课程我们主要用父类,基类,子类这三种称呼。

python中除了上面的继承方式,还可以实现多继承。

class Person(object):
    pass

class Teacher(object):
    pass

class China_Teacher(Person, Teacher):
    pass

可以通过__bases__属性来查看继承关系。

print(China_Teacher.__bases__)  # (<class '__main__.Person'>, <class '__main__.Teacher'>)
print(Person.__bases__)  # (<class 'object'>,)
print(object.__bases__)  # 没有了
print(type.__class__)  # <class 'type'>
print(type.__bases__)  # (<class 'object'>,)  type是继承自object
print(object.__class__)  # <class 'type'> object是由type实例化而来

 

目录
回顶部