python类继承的原理

python类继承的原理,大家完全可以将其想象为调鸡尾酒,就是电视上调酒师拿着一个杯子甩来甩去的跟扔印度飞饼一样的那种,我们不难发现,调鸡尾酒会用很多的原材料来勾兑(至于严格上来说是不是勾兑鄙人也不清楚),比如什么威士忌啦、汽水啦、果汁啦、薄荷啦、盐巴啦、橄榄啦等等,有时候还会打个火......如此一来,鸡尾酒不仅就具备了多种原材料的味道,而且还具备了多种原材料调和出来的味道,更关键的是具备了鸡尾酒这样的文化属性。我们可以说,鸡尾酒就是继承了多种原材料的属性,并有可能发展出了自己的属性。

python类的继承也大概如此,而且从调鸡尾酒的原理我们也可以进一步推出python类的继承的好处。

python类继承的强大功能和作用

高效:有了原材料(python编程中的各种父类),我们就可以很快地调制出新品种的酒水饮料(新的python类),以用于满足不同的顾客(满足python编程中不同的功能需求),而不用从源头开始制曲酿酒,所以可以说通过类的继承是非常高效的。比类的继承更高效的应该是python类的多态,这个我们将在下一个章节中进行介绍。

python类的继承实例

很多python的文档或教程在讲到python类的继承的时候会用animal来讲解,鄙人之前自学python的时候接触到的好像也是这个,现在我们创新(叛逆)一点,来创建一个程序员的类,并使用继承的方式,代码如下:

class Person(): #声明一个Person类def __init__(self, name):self.name = namedef person_speak(self):print('大家好。')class Workers(Person): #声明的打工者的类单继承了Person这个类(实际上还有一个object基类)def __init__(self, name, age):Person.__init__(self,name) #可以直接调用Person类的初始化方法,注意参数要与上面的Person类的保持一致。self.age = agedef workers_speak(self):print('我是个打工者,名字叫%s,今年%s岁!' %(self.name, self.age))class GoodGuy(Person):def __init__(self,name,natrue):Person.__init__(self, name)self.natrue = natruedef goodguy_speak(self):print('我性格%s,对爱情就像对科学计算一样严谨认真,是一个好人,这一点是证据确凿的,因为每次跟人表白,她们总爱说我是个Good Guy!'%(self.natrue))class Programmer(Workers, GoodGuy): #声明一个程序员的类,继承了Workers和GoodGuy类def __init__(self, name, age, occupation, natrue, hair, companion):Workers.__init__(self,name,age)GoodGuy.__init__(self,name,natrue)self.occupation = occupationself.hair = hairself.companion = companiondef programmer_speak(self):print('我是个%s,厉不厉害不清楚,但头发是%s的,而且%s!' %(self.occupation, self.hair, self.companion))programmer = Programmer('小明','28','程序员','内向','秃顶','单身')
programmer.person_speak() #注意,我们并没有在Programmer类中创建person_speak()实例方法,但是通过继承直接获得
programmer.workers_speak() #同上,注意,Programmer类并没有直接继承Person类,为什么也可以调用person_speak(),见下面的代码解析
programmer.goodguy_speak()
programmer.programmer_speak()
————————————————————————————————————————————
程序输出:
大家好。
我是个打工者,名字叫小明,今年28岁!
我性格内向,对爱情就像对科学计算一样严谨认真,是一个好人,这一点是证据确凿的,因为每次跟人表白,她们总爱说我是个Good Guy!
我是个程序员,厉不厉害不清楚,但头发是秃顶的,而且单身!#原创内容,转载请注明“大器编程x1y1z1.com”

更多实例代码的解析、类的继承原理,及更多有趣、实用的python语法实例,可以参考下面的内容

python类的继承原理,好比调鸡尾酒,用继承创建单身程序员类实例https://www.x1y1z1.com/python/pyinheritance.html

一文讲透python类的继承原理,好比调制鸡尾酒相关推荐

  1. python一个类继承多个类_如何让Python继承多个类?一文读懂Python类的继承

    面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过Python类的继承并且在此基础上衍生出让Python继承多个类的方法. 通过Python类的继承创建的新类称为子类或派生类, ...

  2. c++模板类静态成员变量_一文讲透父子类中静态变量,成员变量初始化顺序原理...

    推荐: 从面试到入职到离职,我在B站工作的30天时光 爱了爱了,Alibaba顶级MySQL调优手册到手,加薪妥了 爱了爱了,Spring Cloud Alibaba内部微服务架构笔记真的太牛了 本文 ...

  3. 一文讲透 Git 底层数据结构和原理

    简介: 本文将系统分享 Git 底层知识:对象生命周期变化,底层数据结构,数据包文件结构,数据包文件索引,以及详细分析对象查询流程和算法. 状态模型 上图描述了 git 对象的在不同的生命周期中不同的 ...

  4. js打印线程id_一文讲透“进程,线程和协程”

    一文讲透"进程,线程和协程" 本文从操作系统原理出发结合代码实践讲解了以下内容: 什么是进程,线程和协程? 它们之间的关系是什么? 为什么说Python中的多线程是伪多线程? 不同 ...

  5. 【敏捷开发】一文讲透敏捷管理中的DoR、DoD与AC

    文章目录 一.需求侧:DoR 案例: DoR是什么? 如何建立DoR的标准? DoR样例 1.需求 2.交互 3.架构 二.研发侧:DoD DoD是什么? 如何建立DoD的标准? DoD样例 三.用户 ...

  6. 一文讲透『大神修炼心法』!35岁让自己过的越来越好!

    Cocos 的老铁,如果你这几天没有被麒麟子给卷到?那说明你还没有真正进入 Cocos 圈子里来.为什么这么说呢?看下面. 3月1号 23:57 | 2800+字 麒麟子全方位解读 Cocos Cyb ...

  7. 10自带sftp服务器_一文讲透FTP和SFTP的区别

    阅读本文约需要10分钟,您可以先关注我们或收藏本文,避免下次无法找到. FTP和SFTP都是文件传输协议,我们知道FTP使用的是20和21端口,SFTP使用的是22端口.另外,SFTP前面的S应该是S ...

  8. 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...

    原标题:2017美团点评的运维岗校招笔试题,测测你会几题? 1.数据库:以下哪项不是HASH索引的特征? A MySQL不能确定在两个值之间大约有多少行 B 不能使用hash索引来加速ORDER BY ...

  9. 双线macd指标参数最佳设置_一文讲透双线MACD指标及其实战运用

    原标题:一文讲透双线MACD指标及其实战运用 船长的舍得交易体系技术理论模型中,我们要用到两大指标,分别是均线系统和双线MACD指标. 很多小伙伴都喜欢用双线MACD这个指标,但是90%的人都不知道其 ...

最新文章

  1. 只要能坚持下来就是好博客
  2. html table 筛选记录,JS实现table表格内针对某列内容进行即时搜索筛选功能
  3. Ubuntu16.04如何换pip源
  4. ping 不通容器 宿主_使用容器的正确方式,Docker在雪球的技术实践
  5. 五、开始Github和码云之旅,新手如何上路
  6. 电脑桌面便签小工具_iPhone12系列售价曝光,苹果手机上有什么好用的便签记事本软件推荐吗...
  7. Mysql更新字段中部分数据的方法
  8. 数据分析_金额业务数据知识
  9. Java生成bmp图片_利用24位BMP图实现信息隐写(java语言)
  10. 2010第六届中国移动互联网TOP50
  11. MYSQL 索引 主键 外键
  12. 类的继承------C++
  13. pagefile.sys占用磁盘空间过大时如何处理
  14. Java 超简单实现邮件群发工具类 | 泰山出品
  15. android 从服务端获取的图片怎么适配不同分屏幕的手机,移动端的适配|切图|标注...
  16. MySQL入门很简单——读书笔记
  17. 关于自考 我想说这些
  18. idea各个版本区别
  19. java简单实现仿QQ登陆界面
  20. 大专生三面蚂蚁金服,成为java架构师应该学的知识

热门文章

  1. 跨域问题:Access to XMLHttpRequest at ‘http://localhost:3001/re‘ from origin ‘http://127.0.0.1:8848‘
  2. Snapchat应用将增加Bitmoji 3D AR表情,为拍摄带来新鲜感
  3. 如何防止开发者选项关闭动画后使其失效
  4. GitHub——入门教程
  5. 古典密码算法实验c语言,古典密码实验报告.doc
  6. 数字 IC 设计职位经典笔/面试题(一)
  7. 工业互联网平台的建设路径和技术要点是什么?
  8. 如何删除字符串中的空格
  9. 实现小程序的图文混排功能
  10. 判断身份证号,根据身份证号自动生成出生日期