标签:icc 帮助 car class 类继承 span long ack this
#类是另一个类的特殊版本,可以使用继承。一个类继承另一个类时会自动获得另一个类的所有属性和方法。原来的类称为父类,新类称为子类。
#同时新类可以定义自己的属性和方法
#子类的方法:__init__()
#super()是特殊函数,帮助python将父类和子类关联起来,这行代码让python调用父类的方法__init__(),让子类包含父类所有属性。
1.创建父类
class Car(): def __init__(self,make,model,year): self.make=make self.model=model self.year=year self.odometer_reading=0 def get_descriptive_name(self): # print(str(self.make)+" "+self.model+‘ ‘ + self.year) long_name=str(self.make)+" "+self.model+‘ ‘ + str(self.year) return long_name def read_odometer(self): print("this car has" + str(self.odometer_reading)+"miles on it.") def update_odometer(self, mileage): if mileage >= self.odometer_reading: self.odometer_reading=mileage else: print("you can‘t roll back an odometer") def increment_odometer(self,miles): self.odometer_reading+=miles
2.创建子类
class ElectricCar(Car): def __init__(self,make,model,year): super().__init__(make,model,year) #super()是特殊函数,帮助python将父类和子类关联起来,
#调用子类
my_bmw=ElectricCar(‘bma‘,‘model x99‘,2099)
print(my_bmw.get_descriptive_name()) #bma model x99 2099
3.创建子类特殊属性和方法
class ElectricCar(Car): def __init__(self,make,model,year): super().__init__(make,model,year) self.battery_size=70 #类中的每个属性都必须有初始值,如果在方法__init__中制定初始值,就无需包含形参 def describe_battery(self): print("this car has a" + str(self.battery_size) + "-kwh battery.") my_bmw=ElectricCar(‘bma‘,‘model x99‘,2099) print(my_bmw.get_descriptive_name()) #bma model x99 2099 my_bmw.describe_battery() #this car has a70-kwh battery.
#不定义初始值的方法
class ElectricCar(Car): def __init__(self,make,model,year,battery_size): super().__init__(make,model,year) self.battery_size= battery_size #类中的每个属性都必须有初始值,如果在方法__init__中制定初始值,就无需包含形参 def describe_battery(self): print("this car has a" + str(self.battery_size) + "-kwh battery.") my_bmw=ElectricCar(‘bma‘,‘model x99‘,2099,70) print(my_bmw.get_descriptive_name()) #bma model x99 2099 my_bmw.describe_battery() #this car has a70-kwh battery.
4.子类重写父类方法,父类的一些属性子类不需要可以重写父类
class ElectricCar(Car): def fill_gas_tank(self): print("this car doesn‘t need a gas tank") #会跳过父类的方法执行子类重写的方法
标签:icc 帮助 car class 类继承 span long ack this
原文地址:https://www.cnblogs.com/youngyounglady/p/14345899.html