Python基础+数据科学入门(六)类
声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出。
类-面向对象编程
#创建类
class Cat(): #初始化属性def __init__(self, name): #init两侧有2个下划线self.name = namedef jump(self): #模拟猫的跳跃print(self.name + " is jumping")#用类创建实例
my_cat = Cat("Loser")
your_cat = Cat("Lucky")#调用属性
print(my_cat.name)
print(your_cat.name)my_cat.jump()
your_cat.jump()
1.1 类
三要素:类名、属性、方法
1.1.1 类的命名
要有实际意义
采用驼峰命名法
#class 类名
"""类前空两行"""class Car();
"""对该类的简单介绍"""pass"""类后空两行"""
1.1.2 类的属性
class __init__(self, brand, model, year):"""初始化汽车属性""" #相当于类的内部变量self.brand = brand #汽车的品牌self.model = model #汽车的型号 self.year = year #汽车的出厂年份self.mileage = 0 #汽车总里程初始化为0
1.1.3 类的方法
#相对于类内部的定义
class Car():"""模拟汽车"""def __init__(self, brand, model, year): #初始化汽车属性self.brand = brand #汽车的品牌self.model = model #汽车的型号 self.year = year #汽车的出厂年份self.mileage = 0 #汽车总里程初始化为0def get_main_information(self): #self不能省"""获取汽车主要信息"""print("品牌:{} 型号:{} 出厂年份:{} ",format(self.brand, self.model, self.year))def get_mileage(self):"""获取总里程数"""return "行车总里程:{}公里".format(self.mileage)
1.2 创建实例
1.2.1 创建实例
将实例赋值给对象,实例化过程中,传入相应的参数
v = 类名 (必要的初始化参数)
my_new_car = Car("Audi","A6",2018)
1.2.2 访问属性
类名:属性名
print(my_new_car.brand)
print(my_new_car.model)
print(my_new_car.year)
1.2.3 调用方法
my_new_car = Car("Audi","A6",2018)
my_new_car.get_main_information()
s = my_new_car.get_mileage()
print(s)
1.2.4 属性的修改
- 直接修改
my_old_car = Car("BYD", "宋",2016)
my_old_car.mileage = 12000
print(my_old_car.mileage)
print(my_old_car.get_mileage())
- 通过方法修改属性
def set_mileage(self, distance):self.mileage = distancemy_old_car.set_mileage(8000)
print(my_old_car.get_mileage())
将每次的里程数累加
def increment_mileage(self,distance):self.mileage = self.mileage + distancemy_old_car.increment_mileage(500)
print(my_old_car.get_mileage())
小结
my_cars = [my_new_car, my_old_car] #列表
1.3 类的继承
1.3.1 简单的继承
父类
class Car():"""模拟汽车"""def __init__(self, brand, model, year): #初始化汽车属性self.brand = brand #汽车的品牌self.model = model #汽车的型号 self.year = year #汽车的出厂年份self.mileage = 0 #汽车总里程初始化为0def get_main_information(self): #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:print("里程数不能为负!")else:self.mileage = distancedef increment_mileage(self,distance):self.mileage = self.mileage + distance
子类
class 子类名(父类名):
- 新建一个电动汽车的类
class ElectricCar(Car):"""模拟电动汽车"""def __init__(self, brand, model, year):super().__init__(brand, model, year) #声明继承父类的属性my_electric_car = ElectricCar("FF91","Tomorrow", 2048)
my_electric_car.get_main_information()
1.3.2 给子类添加属性和方法
class ElectricCar(Car):"""模拟电动汽车"""def __init__(self, brand, model, year, bettery_size):super().__init__(brand, model, year) #声明继承父类的属性self.bettery_size = bettery_size #电池容量self.bettery_quantity = bettery_size #电池剩余电量self.bettery2distance_ratio = 5 #电池距离换算系数 5公里/kw.hself.remainder_range = self.bettery_quantity*self.bettery2distance_ratio #剩余可行驶里程def get_electric_quantity(self): #查看当前电池电量print("当前电池剩余电量: {} kw.h".format(self.bettery_quantity)) def set_electric_quantity(self, bettery_quantity): #设置当前电池电量if bettery_quantity < 0 or bettery_quantity > self.bettery_size:print("电量未设置在合理范围内!")else:self.bettery_quantity = bettery_quantityself.remainder_range = self.bettery_quantity*self.bettery2distance_ratiodef get_remainder_range(self):print("当前电量还可以继续行驶{}公里!".format(self.remainder_range))my_electric_car = ElectricCar("FF91","Tomorrow", 2048, 70)
my_electric_car.get_main_information()
my_electric_car.get_electric_quantity()
my_electric_car.set_electric_quantity(50)
my_electric_car.get_remainder_range()
1.3.3 重写父类的方法–多态
def get_main_information(self): #重写父类方法print("品牌:{} 型号:{} 出厂年份:{} 续航里程 {} 公里".format(self.brand, self.model, self.year, self.bettery_size))
1.3.4 用在类中的实例
把电池抽象成一个对象
class Bettrry():def __init__(self, bettery_size = 70):self.bettery_size = bettery_size #电池容量self.bettery_quantity = bettery_size #电池剩余电量self.bettery2distance_ratio = 5 #电池距离换算系数 5公里/kw.hself.remainder_range = self.bettery_quantity*self.bettery2distance_ratio #剩余可行驶里程def get_electric_quantity(self): #查看当前电池电量print("当前电池剩余电量: {} kw.h".format(self.bettery_quantity)) def set_electric_quantity(self, bettery_quantity): #设置当前电池电量if bettery_quantity < 0 or bettery_quantity > self.bettery_size:print("电量未设置在合理范围内!")else:self.bettery_quantity = bettery_quantityself.remainder_range = self.bettery_quantity*self.bettery2distance_ratiodef get_remainder_range(self):print("当前电量还可以继续行驶{}公里!".format(self.remainder_range)) class ElectricCar(Car):"""模拟电动汽车"""def __init__(self, brand, model, year, bettery_size):super().__init__(brand, model, year) #声明继承父类的属性self.bettery = Bettrry(bettery_size)def get_main_information(self): #重写父类方法print("品牌:{} 型号:{} 出厂年份:{} 续航里程 {} 公里".format(self.brand, self.model, self.year, self.bettery.bettery_size*self.bettery.bettery2distance_ratio))my_electric_car = ElectricCar("FF91","Tomorrow", 2048, 70)
my_electric_car.get_main_information()
my_electric_car.bettery.set_electric_quantity(50)
my_electric_car.bettery.get_electric_quantity()
my_electric_car.bettery.get_remainder_range()
Python基础+数据科学入门(六)类相关推荐
- 【深度之眼Python基础+数据科学入门训练营】第八章 文件、异常和模块
第八章 文件.异常和模块 实际应用中,我们绝大多数的数据都是通过文件的交互完成的 8.1 文件的读写 8.1.1 文件的打开 文件的打开通用格式 with open("文件路径", ...
- Python基础+数据科学入门(七)
声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出. 文件.异常和模块 1.1 文件的读写 1.1.1 文件的打开 文件的打开通用格式 w ...
- 【深度之眼Python基础+数据科学入门训练营】第四章 组合数据类型
第四章 组合数据类型 4.1 列表 4.1.1 列表的表达 序列类型:内部元素有位置关系,能通过位置序号访问其中元素 列表是一个可以使用多种类型元素,支持元素的增.删.查.改操作的序列类型 ls = ...
- Python基础+数据科学入门(三)组合数据类型
声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出. 组合数据类型 1.1 列表 1.1.1 列表的表达 列表类型:内部元素有位置关系,能 ...
- 使用Python进行数据科学入门
数据科学是计算领域一个令人兴奋的新领域,它围绕分析,可视化,关联和解释我们的计算机收集的有关世界的无限信息而建立. 当然,称其为"新"领域有点不屑一顾,因为该学科是统计,数据分析和 ...
- python loadtxt_Python 数据科学入门2:Matplotlib
第七章 从文件加载数据 很多时候,我们想要绘制文件中的数据. 有许多类型的文件,以及许多方法,你可以使用它们从文件中提取数据来图形化. 在这里,我们将展示几种方法. 首先,我们将使用内置的csv模块加 ...
- 有前途的人工智能大数据分析相关职业:Python数据科学入门之路
2019独角兽企业重金招聘Python工程师标准>>> 为什么学习Python数据科学? Python是数据科学职业所需的宝贵技能之一.Python是数据科学的首选编程语言. 201 ...
- 《Python数据科学入门》之阅读笔记(第2章)
Python数据科学入门 Dmitry Zinoviev著 熊子源 译 第二章 数据科学的Python核心 第4单元 理解基本的字符串函数 大小写转换函数: lower() 将所有字符转换为小写 up ...
- python数据科学入门_干货!小白入门Python数据科学全教程
前言本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据工 ...
最新文章
- 用tar来备份Ubuntu操作系统
- python os.walk()
- python爬虫如何从一个页面进入另一个页面-Python爬虫如何获取页面内所有URL链接?本文详解...
- [收集] C++ memset ,memcpy 和strcpy 的区别
- 【比较面】真核生物和原核生物的异同
- 7.定义一个有80个元素的字符数组,从键盘输入一串字符,将其中的大写字母转换为小写字母,而将原来为小写的字母转换为大写字母,其他字符不变。
- gson 转换 ListMap 注意事项
- 修手机时创意被剽窃,男子向苹果索赔7万亿!是认真的吗?
- QML如何与C++交互
- Servlet and Tomcat
- Linux中级之负载均衡(lvs,nginx,haproxy)、中间件
- HDU 4864 (2014 Multi-University Training Contest 1 )
- 条件注释判断浏览器版本
- Linux期末考试试题长沙理工,Linux期末考试试题8套(含答案)
- Citrix 桌面云 XenApp_XenDesktop_7.15 部署系列(八)部署虚拟桌面及应用
- 不再被日报月报折磨!一键生成报表模板的神器来了
- 80004005错误代码_80004005错误代码怎么回事_安装软件错误代码0×80004005如何解决...
- 魔兽服务器维护一般要多少时间,《魔兽世界》魔兽世界维护时间心得
- Sql Server排序规则(转)
- web前端面试题以及相关答案解析
热门文章
- android之ListView,GirdView和常用适配器
- SqlSever错误 证书链是由不受信任的颁发机构颁发的
- 心理月刊杂志心理月刊杂志社心理月刊编辑部2023年第1期目录
- spark企业经典案例之手机app流量统计
- 华为 matebook-x-pro-2020 电脑 Hackintosh 黑苹果efi引导文件
- php如何实现上一篇下一篇
- limux 卡登录界面_Win7开机登录界面修改,向你的女神表白吧
- 东方通如何查看版本linux命令,东方通tongweb linux安装 Web程序 - 贪吃蛇学院-专业IT技术平台...
- 从零开始的Python学习 -- 简单的练习题
- win10桌面壁纸锁屏目录