python编程和继承_Python编程:继承

什么是继承

继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类

继承的特性

子类会遗传父类的属性

继承是类与类之间的关系

继承的优点

使用继承可以减少代码的冗余

注意:在Python3中如果一个类没有继承任何类,则默认继承object类,对象查找属性的顺序:对象本身 -> 对象的类 -> 父类

classCar():

def __init__(self,make,model,year):

self.make=make

self.model=model

self.year=year

self.odometer_reading= 0def get_descriptive_name(self):

long_name= str(self.year) + ' ' + self.make + ' ' +self.modelreturnlong_name.title()

def read_odometer(self):

print("This car has" + str(self.odometer_reading) + 'miles on it')

def upadte_odometer(self,mileage):

self.odometer_reading=mileage

def increment_odometer(self,miles):

self.odometer_reading+=milesclassElectricCar(Car):

def __init__(self,make,model,year):

super().__init__(make,model,year)

my_tesla= ElectricCar('tesla','model s',2019)

print(my_tesla.get_descriptive_name())

输出

2019 Tesla Model S

父类必须包含在当前文件中,且位于子类前面。创建一个子类ElectricCar(Car)继承父类Car,使用方法__init__()接受创建Car实例所需信息。使用super()函数将父类和子类关联起来。

给子类定义属性和方法

classCar():

def __init__(self,make,model,year):

self.make=make

self.model=model

self.year=year

self.odometer_reading= 0def get_descriptive_name(self):

long_name= str(self.year) + ' ' + self.make + ' ' +self.modelreturnlong_name.title()

def read_odometer(self):

print("This car has" + str(self.odometer_reading) + 'miles on it')

def upadte_odometer(self,mileage):

self.odometer_reading=mileage

def increment_odometer(self,miles):

self.odometer_reading+=milesclassElectricCar(Car):

def __init__(self,make,model,year):

super().__init__(make,model,year)

self.battery_size= 70def deescribe_battery(self):

print('This car has a' + str(self.battery_size) + '-kWh battery.')

my_tesla= ElectricCar('tesla','model s',2016)

print(my_tesla.get_descriptive_name())

my_tesla.deescribe_battery()

输出2016Tesla Model S

This car has a70-kWh battery.

添加新属性battery_size,初始值70,根据ElectricCar类创建的实例都包括,而Car的实例都不包括,又添加了describe_battery()方法,打印电瓶信息。如果一个属性或方法是任何汽车都有的那么应加入Car类,而不是ElectricCar类。

重写父类方法

如果父类不符合子类模拟的实物的行为,就需要进行重写

classBrid():

def isWing(self):

print('鸟有翅膀')

def fly(self):

print('鸟会飞')classOstrich(Brid):

def fly(self):

print('鸵鸟不会飞')

ostrich=Ostrich()

ostrich.fly()

输出

鸵鸟不会飞

定义鸟类,有两个属性:有翅膀、会飞。又定义了鸵鸟,但鸵鸟有翅膀不会飞。可以在子类鸵鸟类中重写父类鸟类的fly方法。

重写:有时又称覆盖,指对类中已有方法的内部实现进行修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值