这是菜鸟学python的第40篇原创文章
阅读本文大概需要7分钟
今天我们来了简单说一下Python类的继承,我们会通过一个汽车类的例子一步一步分解开来,带领大家来学习Python类的继承,我把这个复杂的概念分解成4步来说.
流程:
->新建一个汽车类
->给汽车类添加属性和方法
->增加一个电动汽车子类,继承汽车类
->给电动车添加属性和方法,然后重载父类方法
知识要点:
1)子类的继承
2)子类的初始化
3)子类的重载
第一步:我们先创建一个car的类
1)这个类需要存储一些汽车的信息列如:厂家,型号,年代等等
2)需要有一个简单的方法来获得这些信息
3)需要有一个方法说明这个是汽车是用汽油
>>
2016 Audi A4
This car need a gas tank!
是不是有点简单,我们再给汽车添加点东西
增加一个里程数信息
增加读里程数的方法
更新里程数的方法
my_new_car = Car('audi', 'a4', 2016)
print my_new_car.get_descriptive_name()
my_new_car.update_odometer(100)
my_new_car.read_odometer()
>>
2016 Audi A4
This car has 100 miles on it
第二步:增加一个电动汽车子类
我们增加一个电动汽车的类ElectricCar,因为电动汽车也是汽车的一种,所以我们会继承car类,注意子类初始化有两种方法
1)先看第一种:若父类Car是经典类,子类的初始化的时候,用传统的调用直接用父类调用__init__()
2)再看第二种:若父类Car是新式类(就是父类继承object类),子类的初始化的时候
除了直接用父类调用__init__(),还可以用super这个关键字
super()会带两个参数,第一个是子类的类名,第二个是self参数.
有同学说为啥要用super(),因为super可以避免一些类继承的潜在问题,特别是在多重继承上,关于super我们这边先不展开讲.大家切记,千万不要把super和传统的调用混在一起用.
第三步:添加子类特有属性
那么我们子类是不是应该有自己的特有属性和方法的,好我们加点东西
添加电池容量的变量
获取电池容量的方法
第四步:类方法的重载
如果我们子类有一个名字和父类一样的方法,Python会自动判断对象的类型去调用对应的方法.比如我们子类里面也有一个叫fill_gas_tank的方法,会怎么样呢:
子类会调用自己的fill_gas_tank方法
最后说一下,原创真的不易,希望大家能够给点支持,
也欢迎更多喜欢Python的同学关注 微信公众号:菜鸟学python,一起来学python吧
阅读原文