深度之眼(十三)——Python:类-面向对象的编程
文章目录
引子——类的引入
可以看我之前写的文章:
里面详细讲了类的相关概念
7.1 类的定义
三要素:类名、属性、方法
7.1.1 类的命名
首字母大写
7.1.2 类的属性
> # def _init_(self, 要传递的参数) 舒适化类的属性
class Car():
"""模拟汽车"""
def _init_(self, brand, model, year):
"""初始化汽车属性""" #相当于类内部的变量
self.brand = brand #汽车的品牌
self.model = model #汽车的型号
self.year = year #汽车的出厂年份
self.mileage = 0 #新车总里程初始化为0
7.1.3 类的方法
# 相当于类内部定义的函数
7.2 创建实例
7.2.1 实例的创建
将实例赋值给对象,实例化过程中,传入相应的参数
V=类名(必要的初始化参数)
my_new_car = Car("Audi", "A6", 2018)
7.2.2 访问属性
类名.属性名
print(my_new_car.brand)
print(my_new_car.model)
print(my_new_car.year)
7.2.3 调用方法
class Car():
"""模拟汽车"""
def __init__(self, brand, model, year):
"""初始化汽车属性""" #相当于类内部的变量
self.brand = brand #汽车的品牌
self.model = model #汽车的型号
self.year = year #汽车的出厂年份
self.mileage = 0 #新车总里程初始化为0
def get_main_information(self):
print("品牌:{} 型号: {} 出厂年份: {}".format(self.brand, self.model, self.year))
def get_mileage(self):
return "汽车总里程:{}公里".format(self.mileage)
7.2.4 修改属性
1、直接修改
2.通过方法修改属性
class Car():
"""模拟汽车"""
def __init__(self, brand, model, year):
"""初始化汽车属性""" #相当于类内部的变量
self.brand = brand #汽车的品牌
self.model = model #汽车的型号
self.year = year #汽车的出厂年份
self.mileage = 0 #新车总里程初始化为0
def get_main_information(self):
print("品牌:{} 型号: {} 出厂年份: {}".format(self.brand, self.model, self.year))
def get_mileage(self):
return "汽车总里程:{}公里".format(self.mileage)
def set_mileage(self, distance):
self.mileage = distance
my_old_car = Car("BBB","铃翎",2000)
print(my_old_car.get_mileage())
my_old_car.set_mileage(8000)
print(my_old_car.get_mileage())
3. 继续扩展
- 禁止设置负里程
- 将每次的里程数累加
class Car():
"""模拟汽车"""
def __init__(self, brand, model, year):
"""初始化汽车属性""" #相当于类内部的变量
self.brand = brand #汽车的品牌
self.model = model #汽车的型号
self.year = year #汽车的出厂年份
self.mileage = 0 #新车总里程初始化为0
def get_main_information(self):
print("品牌:{} 型号: {} 出厂年份: {}".format(self.brand, self.model, self.year))
def get_mileage(self):
return "汽车总里程:{}公里".format(self.mileage)
def set_mileage(self, distance):
if distance > 0:
self.mileage = distance
else:
print("里程数不能为负!")
def increment_mileage(self, distance):
if distance > 0:
self.mileage += distance
else:
print("新增里程数不能为负!")
7.3 类的继承
7.3.1 简单的继承
父类
class Car():
"""模拟汽车"""
def __init__(self, brand, model, year):
"""初始化汽车属性""" #相当于类内部的变量
self.brand = brand #汽车的品牌
self.model = model #汽车的型号
self.year = year #汽车的出厂年份
self.mileage = 0 #新车总里程初始化为0
def get_main_information(self):
print("品牌:{} 型号: {} 出厂年份: {}".format(self.brand, self.model, self.year))
def get_mileage(self):
return "汽车总里程:{}公里".format(self.mileage)
def set_mileage(self, distance):
if distance > 0:
self.mileage = distance
else:
print("里程数不能为负!")
def increment_mileage(self, distance):
if distance > 0:
self.mileage += distance
else:
print("新增里程数不能为负!")
子类
class 子类名字(父类名):
* 新建一个电动汽车
class EletricCar(Car):
"""模拟电动汽车"""
def __init__(self, brand, model, year):
"""初始化电动汽车属性"""
super().__init__(brand, model, year) #声明继承父类的属性
my_new_electric_car = EletricCar("FFF","禹",2001)
my_new_electric_car.get_main_information()
7.3.2 给子类添加属性和方法
7.3.3 重写父类的方法——多态
7.3.4 用在类中的实例
把电池抽象成一个对象
逻辑更加清晰
小结