声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出。

类-面向对象编程

#创建类
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 属性的修改

  1. 直接修改
my_old_car = Car("BYD", "宋",2016)
my_old_car.mileage = 12000
print(my_old_car.mileage)
print(my_old_car.get_mileage())
  1. 通过方法修改属性
    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基础+数据科学入门(六)类相关推荐

  1. 【深度之眼Python基础+数据科学入门训练营】第八章 文件、异常和模块

    第八章 文件.异常和模块 实际应用中,我们绝大多数的数据都是通过文件的交互完成的 8.1 文件的读写 8.1.1 文件的打开 文件的打开通用格式 with open("文件路径", ...

  2. Python基础+数据科学入门(七)

    声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出. 文件.异常和模块 1.1 文件的读写 1.1.1 文件的打开 文件的打开通用格式 w ...

  3. 【深度之眼Python基础+数据科学入门训练营】第四章 组合数据类型

    第四章 组合数据类型 4.1 列表 4.1.1 列表的表达 序列类型:内部元素有位置关系,能通过位置序号访问其中元素 列表是一个可以使用多种类型元素,支持元素的增.删.查.改操作的序列类型 ls = ...

  4. Python基础+数据科学入门(三)组合数据类型

    声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出. 组合数据类型 1.1 列表 1.1.1 列表的表达 列表类型:内部元素有位置关系,能 ...

  5. 使用Python进行数据科学入门

    数据科学是计算领域一个令人兴奋的新领域,它围绕分析,可视化,关联和解释我们的计算机收集的有关世界的无限信息而建立. 当然,称其为"新"领域有点不屑一顾,因为该学科是统计,数据分析和 ...

  6. python loadtxt_Python 数据科学入门2:Matplotlib

    第七章 从文件加载数据 很多时候,我们想要绘制文件中的数据. 有许多类型的文件,以及许多方法,你可以使用它们从文件中提取数据来图形化. 在这里,我们将展示几种方法. 首先,我们将使用内置的csv模块加 ...

  7. 有前途的人工智能大数据分析相关职业:Python数据科学入门之路

    2019独角兽企业重金招聘Python工程师标准>>> 为什么学习Python数据科学? Python是数据科学职业所需的宝贵技能之一.Python是数据科学的首选编程语言. 201 ...

  8. 《Python数据科学入门》之阅读笔记(第2章)

    Python数据科学入门 Dmitry Zinoviev著 熊子源 译 第二章 数据科学的Python核心 第4单元 理解基本的字符串函数 大小写转换函数: lower() 将所有字符转换为小写 up ...

  9. python数据科学入门_干货!小白入门Python数据科学全教程

    前言本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据工 ...

最新文章

  1. 用tar来备份Ubuntu操作系统
  2. python os.walk()
  3. python爬虫如何从一个页面进入另一个页面-Python爬虫如何获取页面内所有URL链接?本文详解...
  4. [收集] C++ memset ,memcpy 和strcpy 的区别
  5. 【比较面】真核生物和原核生物的异同
  6. 7.定义一个有80个元素的字符数组,从键盘输入一串字符,将其中的大写字母转换为小写字母,而将原来为小写的字母转换为大写字母,其他字符不变。
  7. gson 转换 ListMap 注意事项
  8. 修手机时创意被剽窃,男子向苹果索赔7万亿!是认真的吗?
  9. QML如何与C++交互
  10. Servlet and Tomcat
  11. Linux中级之负载均衡(lvs,nginx,haproxy)、中间件
  12. HDU 4864 (2014 Multi-University Training Contest 1 )
  13. 条件注释判断浏览器版本
  14. Linux期末考试试题长沙理工,Linux期末考试试题8套(含答案)
  15. Citrix 桌面云 XenApp_XenDesktop_7.15 部署系列(八)部署虚拟桌面及应用
  16. 不再被日报月报折磨!一键生成报表模板的神器来了
  17. 80004005错误代码_80004005错误代码怎么回事_安装软件错误代码0×80004005如何解决...
  18. 魔兽服务器维护一般要多少时间,《魔兽世界》魔兽世界维护时间心得
  19. Sql Server排序规则(转)
  20. web前端面试题以及相关答案解析

热门文章

  1. android之ListView,GirdView和常用适配器
  2. SqlSever错误 证书链是由不受信任的颁发机构颁发的
  3. 心理月刊杂志心理月刊杂志社心理月刊编辑部2023年第1期目录
  4. spark企业经典案例之手机app流量统计
  5. 华为 matebook-x-pro-2020 电脑 Hackintosh 黑苹果efi引导文件
  6. php如何实现上一篇下一篇
  7. limux 卡登录界面_Win7开机登录界面修改,向你的女神表白吧
  8. 东方通如何查看版本linux命令,东方通tongweb linux安装 Web程序 - 贪吃蛇学院-专业IT技术平台...
  9. 从零开始的Python学习 -- 简单的练习题
  10. win10桌面壁纸锁屏目录