python编程 从入门到实践第九章学习笔记--继承父类

如果你要编写的类是另一个现成类的特殊版本,可使用 继承 。一个类 继承 另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为 父类, 而新类称为 子类 。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。
使用继承时需要特别注意的点有:
  • 创建子类时,父类必须包含在当前文件中,且位于子类前面;
  • 需要使用super()这个特殊函数,帮助Python将父类和子类关联起来(父类也称为超类(superclass),名称super因此而得名。)
class 父类():
    def __init__(self,形参1,形参2,形参3):
        --snip--

class 子类():
    def __init__(self,形参1,形参2,形参3):
        super().__init__(形参1,形参2,形参3)
    

重写父类的方法:

在子类中定义一个这样的方法,即它与要重写的父类方法同名。这样,Python将不会考虑这个父类方法,而只关注你在子类中定义的相应方法。(大白话说就是写一个名称一样的方法,这样python就会只关注你新写的方法,而不关注父类的方法)

解决类中属性和方法过多,即模拟实物的过程中需要添加的细节越来越多的方法:

可以将类的一部分作为一个独立的类提取出来,可以将大型类拆分成多个协同工作的小类。
例如,不断给ElectricCar类(电动汽车,作为汽车的子类)添加细节时,我们可能会发现其中包含很多专门针对汽车电瓶的属性和方法。在这种情况下,我们可将这些属性和方法提取出来,放到另一个名为 Battery的类中,并将一个 Battery 实例用作ElectricCar类的一个属性
class Car(): 
 --snip-- 
 
class Battery(): 
 """一次模拟电动汽车电瓶的简单尝试""" 
 
 def __init__(self, battery_size=70): 

 """初始化电瓶的属性""" 
 self.battery_size = battery_size 
 def describe_battery(self): 
 """打印一条描述电瓶容量的消息""" 
 print("This car has a " + str(self.battery_size) + "-kWh battery.") 
  
class ElectricCar(Car): 
 """电动汽车的独特之处""" 
 def __init__(self, make, model, year): 
 """ 
 初始化父类的属性,再初始化电动汽车特有的属性
 """ 
 super().__init__(make, model, year) 
 self.battery = Battery() 
 
my_tesla = ElectricCar('tesla', 'model s', 2016) 
print(my_tesla.get_descriptive_name()) 
my_tesla.battery.describe_battery()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值