:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。

本文字数约1300,阅读时间约为3分钟

Python面向对象编程

类的继承机制

如果一个类A继承自另一个类B,就把继承者类A称为子类,被继承的类B称为父类、超类或基类。

私有变量和私有方法

__xxx ——类中的私有变量/方法名(Python的函数也是对象,所以成员方法称为成员变量也行得通。)

" 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。但是,通过a._A__xxx这种方式,在外面也能够访问“私有”变量。

代码复用

应用继承可以从已有类中衍生出新的类,添加或修改部分功能。

新类具有旧类中的各种属性和方法,而不需要进行任何复制。

一个关于类的继承的例子:汽车、汽油车、电动车

class Car:  # 父类。    def __init__(self, name):        self.name = name        self.remain_mile = 0    def fill_fuel(self, miles):  # 加燃料里程。        self.remain_mile = miles    def run(self, miles):  # 跑miles英里。        print(self.name, end=": ")        if self.remain_mile >= miles:            self.remain_mile -= miles            print("run %d miles!" % (miles,))        else:            print("fuel out!")class GasCar(Car):  # 子类一。    def fill_fuel(self,  gas):  # 加汽油gas升。        self.remain_mile = gas * 6  # 每升跑6英里。class ElecCar(Car):   # 子类二。    def fill_fuel(self, power):  # 充电power度。        self.remain_mile = power * 3.0  #每度电3英里。gcar = GasCar("BMW")gcar.fill_fuel(50.0)gcar.run(200.0)ecar = ElecCar("Tesla")ecar.fill_fuel(60.0)ecar.run(200.0)<<
子类与父类

如果两个类具有“一般-特殊”这种逻辑关系,那么特殊类就可以作为一般类的子类来定义,从父类继承属性和方法。

class ():    def (self, ...)
覆盖Override

子类对象可以调用父类方法,除非这个方法在子类中被重新定义了。

如果子类同名方法覆盖了父类的方法,仍然还可以调用父类的方法。使用super().来操作。super()表示返回父类。

子类还可以添加父类中没有的方法和属性。

class GasCar(Car):    def __init__(self, name, capacity):  # 名称和排量。        super().__init__(name)  # 父类初始化方法,只有名称。        self.capacity = capacity  # 增加了排量属性。
关于self

在类的定义中,所有方法的首个参数一般都是self。

self的作用是,在类的内部,实例化过程中传入的所有数据都赋给这个变量。

self和类是没有关系的,它脱离了类恶独立的一个实例变量。

gcar = GasCar("BMW")gcar.fill_fuel(50.0)gcar.run(200.0)  # gcar就是类的.run方法中的参数self。GasCar.run(gcar, 200.0)  # gcar作为self参数传入.run方法里。

上述代码中,gcar.run(200.0)和GasCar.run(gcar, 200.0)这两行代码是等价的。

至此,“Python零基础入门学习”系列全部结束。敬请关注新的内容。

Over.

python 类和对象_Python零基础入门学习33:类与面向对象编程:类的继承相关推荐

  1. python三种数据类型_Python零基础入门学习02:Python基本数据类型:数字类型

    注 :本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. Python学习 Python有三种不同的数字类型:整数(int),浮点数(float)和复数(complex). 值得注意的 ...

  2. python初学小甲鱼_Python零基础入门学习 作者:小甲鱼

    temp = input('不妨想一想小甲鱼现在心里想的哪一个数字:') guess = int(temp) if guess == 8: print('你是小甲鱼心里的蛔虫吗?') print('哼 ...

  3. 零基础入门python小甲鱼-小甲鱼零基础入门学习Python百度云下载 | 宅男君

    Python编程语言可以在不同平台上使用,比如Windows.MAC.Linux操作系统.通常情况下,一个Python程序在你自己的Windows系统上运行,也可以在别人的MAC系统上运行.Pytho ...

  4. python dict 合并同类项_零基础入门学习Python,这13个Python惯用小技巧一定要收藏...

    原标题:零基础入门学习Python,这13个Python惯用小技巧一定要收藏 Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就是不断总结,不断记笔记!尤其是好的 ...

  5. python 二进制流转图片_Python零基础入门到精通-5.1节:Python程序的执行过程

    教程引言: 系统地讲解计算机基础知识,Python的基础知识, 高级知识,web开发框架,爬虫开发,数据结构与算法,nginx, 系统架构.一步步地帮助你从入门到就业. 5.1.1 在命令行中执行Py ...

  6. python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

  7. python做动画视频教程_Python零基础入门动画教程

    课程答疑: QQ群:913293727 适用人群 在校大学生/应届毕业生/业余编程爱好者/初.中开发学习者/大中专院校师生/数据分析人员/技术支持/测试人员 课程概述--课程大纲-- 1.Python ...

  8. python环境变量配置_Python零基础入门到年薪二十万-1.1节: 在windows中安装Python

    教程引言: 该系列图文课程以及视频课程全部免费.课程会系统地讲解计算机的基础知识,Python的基础知识. 在讲解Python的高级知识中,会系统地讲解面向对象编程,并发编程,数据库编程,网络编程. ...

  9. 零基础入门C 语言如何实现面向对象编程

    具体和抽象 具体:客观存在着的或在认识中反映出来的事物的整体,是具有多方面属性.特点.关系的统一: 抽象:从具体事物中被抽取出来的相对独立的各个方面.属性.关系等. 以 Person 为例:" ...

最新文章

  1. Could not fetch URL https://pypi.org/simple/pip/
  2. 收藏——CodeProject - 使用特性(attributes)和激活机制来实现工厂模式
  3. 程序员面试题精选100题(58)-八皇后问题[算法]
  4. [渝粤教育] 中国地质大学 事故应急救援 复习题
  5. ubuntu默认root密码
  6. Java并发编程之AbstractQueuedSynchronizer(AQS)源码解析
  7. tiny服务器系列,项目:TinyHTTP服务器
  8. Matplotlib 中文用户指南 3.7 变换教程
  9. SAP License:SAP软件功能有哪些?
  10. IT报表开发者必看:别加班了,快用这个神器提高报表开发效率
  11. 曲线在三维空间的旋转计算以及Matlab实例实现
  12. 2021年游戏项目的十大编程语言:C++、Java、C#均上榜
  13. 尚硅谷微服务分布式电商项目《谷粒商城》基础篇学习总结
  14. 批量修改文件夹中所有文件的格式为指定格式
  15. Infor Framework Task Man 服务无法启动
  16. GPU服务器与CPU服务器的区别,如何选择GPU服务器
  17. 【入门恩师】 --极致强压下的Linux学习,感谢马哥
  18. 颠覆你想象的150个故事(1)
  19. F1赛车相关公开数据集
  20. 2010互联网第一件大事件——谷歌退出中国内地

热门文章

  1. 季枫老师java全集_PHP冒泡排序,摘取季枫老师视频的冒泡排序内容!
  2. 卷积神经网络算法python实现_自动色彩均衡(ACE)快速算法python实现
  3. 异常来自 hresult:0x800a03ec_肺癌早期不是悄无声息,一旦出现这3个“异常”,十有八九是肺癌...
  4. (王道408考研数据结构)第七章查找-第四节:哈希表(基本概念及其操作)
  5. 【线性代数本质】1:向量究竟是什么
  6. Linux系统编程23:基础IO之了解硬盘物理和逻辑结构及明白inode的本质和掌握软硬链接及其区别
  7. .windbg-k*实例分析(查看调用栈分析)
  8. USACO-Section1.5 Arithmetic Progressions(枚举)
  9. golang中package的4种导入方式
  10. matlab实现三次样条插值