class Car():
def __init__(self, make, model, year): #定义特殊方法
self.make = make #初始化汽车的属性
self.model = model (1)
self.year = year
self.odometer = 0 #类中的每个属性都必须有初始值
def get_descriptive(self): #定义普通方法
long_name = str(self.year) + ' ' + self.model + ' '+ self.make
return long_name.title()
def get_odometer(self):
print('this car has ' + str(self.odometer) + ' miles on it ')
car1 = Car('audi', 'a4l', '2017') #创建实例
print(car1.get_descriptive())
car1.get_odometer()
#例子--继承 (一个类继承另一个类时, 他将自动获得另一个类的所有属性和方法)
class ElectricCar(Car):
def __init__(self, make, model, year): #创建__init__方法接受创建Car实例所需的信息
super().__init__(make, model, year) #super()是一个能将父类和子类联系起来的函数
self.battery_size = 300 (2)#初始化电动车特有的属性
def describe_battrry(self):
print('this car has a '+str(self.battery_size) + '-kwh battery.')
my_tesla = ElectricCar('audi', 'a4l', '2021')
print(my_tesla.get_descriptive())
my_tesla.describe_battrry()
#将实例用作属性 (3)
class Battery():
def __init__(self, battery_size = 400):
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): #创建__init__方法接受创建Car实例所需的信息
super().__init__(make, model, year) #super()是一个能将父类和子类联系起来的函数
self.battery = Battery() #添加了一个self.battery 的属性,将Barrery()的内容赋给他
my_tesla = ElectricCar('audi', 'a4l', '2021')
my_tesla.battery.describe_battery()
** 继承: 一个类继承另一个类时,他将自动获的另一个类的所有属性和方法; 原有的类成为父类,而新的成为子类,子类继承父类的所有属性和方法,同时还可以有自己的属性和方法。
- 类中的每个属性都必须有初始值,可以一形参方式设定,也可以直接设定。
- 子类可设定自己独有的属性
- 实例可以当作属性的值