一、类的定义
- 定义:三要素——类名、属性、方法
- 类的属性:即类内部的变量 def__init__(self,要传递的参数) 初始化类的参数
class Car():
"""模拟汽车"""
def __init__(self, brand, model, year):
"""初始化汽车属性"""
self.brand = brand
self.model = model
self.year = year
self.mileage = 0
- 类的方法:相对于类内部定义的函数
class Car():
"""模拟汽车"""
def __init__(self, brand, model, year):
"""初始化汽车属性"""
self.brand = brand
self.model = model
self.year = year
self.mileage = 0
def get_main_info(self):
"""获取汽车主要信息"""
print("品牌:{} 型号:{} 出厂年份:{}".format(self.brand, self.model, self.year))
def get_mileage(self):
"""获取总里程数"""
return "行车总里程数:{}公里".format(self.mileage)
二、创建实例
- 创建格式:a = 类名(必要的初始化参数)
- 访问属性:类名.属性名
- 调用方法:实例名.方法名(必要的参数)
- 修改属性
1)直接修改
2)通过方法修改属性
三、类的继承
- 简单继承(自动继承父类的所有方法): class 子类名(父类名):
class ElectricCar(Car):
"""模拟电动汽车"""
def __init__(self, brand, model, year):
"""初始化电动汽车属性"""
super().__init__(brand, model, year)
- 给子类添加属性和方法
class ElectricCar(Car):
"""模拟电动汽车"""
def __init__(self, brand, model, year, bettery_size):
"""初始化电动汽车属性"""
super().__init__(brand, model, year)
self.bettery_size = bettery_size
self.electric_quantity = bettery_size
self.electric2distance_ratio = 5
self.remainder_range = self.electric_quantity*self.electric2distance_ratio
def get_electric_quantity(self):
"""查看当前电池电量"""
print("当前电池剩余电量:{} kw.h".format(self.electric_quantity))
def set_electric_quantity(self, electric_quantity):
"""设置电池剩余电量,重新计算电量可支撑行驶里程"""
if electric_quantity >= 0 and electric_quantity <= self.bettery_size:
self.electric_quantity = electric_quantity
self.remainder_range = self.electric_quantity*self.electric2distance_ratio
else:
print("电量未设置在合理范围!")
def get_remainder_range(self):
"查看剩余可行驶里程"
print("当前电量还可以继续驾驶 {} 公里".format(self.remainder_range))
- 重写父类的方法——多态,方法名称不变,代码改变
def get_main_info(self):
"""获取汽车主要信息"""
print("品牌:{} 型号:{} 出厂年份:{} 续航里程:{} 公里".format(self.brand, self.model, self.year, self.bettery_size*self.electric2distance_ratio))
- 在类中直接调用其他类的实例
class Bettery():
class ElectricCar(Car):
"""模拟电动汽车"""
def __init__(self, brand, model, year, bettery_size):
"""初始化电动汽车属性"""
super().__init__(brand, model, year)
self.bettery = Bettery(bettery_size)
def get_main_info(self):
"""获取汽车主要信息"""
print("品牌:{} 型号:{} 出厂年份:{} 续航里程:{} 公里".format(self.brand, self.model, self.year, self.bettery.bettery_size*self.electric2distance_ratio))