class Animal:'''人和狗都是动物,所以创造一个Animal基类'''def __init__(self, name, aggressivity, life_value):self.name = name  # 人和狗都有自己的昵称;self.aggressivity = aggressivity  # 人和狗都有自己的攻击力;self.life_value = life_value  # 人和狗都有自己的生命值;def eat(self):print('%s is eating'%self.name)class Dog(Animal):'''狗类,继承Animal类'''def __init__(self,name,breed,aggressivity,life_value):super().__init__(name, aggressivity, life_value) #执行父类Animal的init方法self.breed = breed  #派生出了新的属性def bite(self, people):'''派生出了新的技能:狗有咬人的技能:param people:  '''people.life_value -= self.aggressivitydef eat(self):# Animal.eat(self)#super().eat()print('from Dog')class Person(Animal):'''人类,继承Animal'''def __init__(self,name,aggressivity, life_value,money):#Animal.__init__(self, name, aggressivity, life_value)#super(Person, self).__init__(name, aggressivity, life_value)super().__init__(name,aggressivity, life_value)  #执行父类的init方法self.money = money   #派生出了新的属性def attack(self, dog):'''派生出了新的技能:人有攻击的技能:param dog: '''dog.life_value -= self.aggressivitydef eat(self):#super().eat()Animal.eat(self)print('from Person')egg = Person('egon',10,1000,600)
ha2 = Dog('二愣子','哈士奇',10,1000)
print(egg.name)
print(ha2.name)
egg.eat()

继承了object的就是新式类,py3默认会继承object,py2的经典类继承的是内置函数,使其拥有基本方法,并不是什么都不继承  

新式类是广度优先的遍历算法,经典类是深度优先的遍历算法

转载于:https://www.cnblogs.com/nicess/articles/8856600.html

day20 派生属性和方法,钻石继承相关推荐

  1. Kotlin 类、属性、方法、继承、多态

    Kotlin 类.属性.方法.继承.多态 一.Kotlin 类 1. kotlin 定义类 使用 open 修饰类,表明可被子类继承 使用 open 修饰属性,表明可被子类覆写 /*** Kotlin ...

  2. python(11)—— 面向对象编程基础(对象,类,属性,封装,继承,多态)

    把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化( ...

  3. 深入super,看Python如何解决钻石继承难题

    1.   Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object):def __init__ ...

  4. python类中的函数调用关系_Python中类的内置方法与继承关系实例

    1.类的内置方法 Python内部类: 所谓内部类,就是在类的内部定义的类,主要目的是为了更好的抽象现实世界. 例子: 汽车是一个类,汽车的底盘轮胎也可以抽象为类,将其定义到汽车内中,而形成内部类, ...

  5. Python super钻石继承

    1.   Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object):def __init__ ...

  6. python---之super()继承,解决钻石继承难题

    1.   Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object):def __init__ ...

  7. Python super(钻石继承)

    1.   Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object):def __init__ ...

  8. python 钻石继承_python3--object类,继承与派生,super方法,钻石继承问题

    python3--object类,继承与派生,super方法,钻石继承问题 发布时间:2018-04-13 20:38:05编辑:Run阅读(1914) 昨天内容复习 组合:什么有什么的关系(例:老师 ...

  9. Python类与对象最全总结大全(类、实例、属性方法、继承、派生、多态、内建函数)

    目录 面向对象编程 常用术语/名词解释 抽象/实现 封装/接口 合成 派生/继承/继承结构 泛化/特化 多态 自省/反射 访问限制 私有属性和公有属性 私有方法的设置 类 创建类 声明与定义 类属性 ...

最新文章

  1. DM642图像平移程序学习
  2. 列表解析和生成器表达式
  3. VB中使用PNG格式图片的一种新方法
  4. SharePoint 2010 Form Authentication (SQL) based on existing database
  5. java图片处理开源项目_如何处理离开开源项目
  6. python工资一般多少-Python工资多少?就业发展前景怎么样?
  7. 2017ICPC北京 J:Pangu and Stones(区间DP)
  8. 获取IP及判断IP是否在区间
  9. SqlServer存储过程基础
  10. s3c2440的GPIO驱动
  11. 论文学习13Reconstructing the house from the ad: Structured prediction on real estate classifieds(实体关系抽取)
  12. Java、十六进制转二进制
  13. WEB视频自适应(下)
  14. 【Visual Studio 2013中文语言包安装】
  15. SQL数据库性能胯了,换 SSD硬盘就能解决问题?
  16. 华为魔术2手机拆机图解_荣耀Magic2做工如何?荣耀Magic2拆解图解评测 (全文)
  17. Octane 2022 预览版来了 -设计师们的福音
  18. c语言开头的作用是什么,C语言为什么开头都加;#includestdio.h有什么作用?
  19. 渣土车智能识别检测 yolov5
  20. 灰度图学习_为什么灰度图是灰色的??

热门文章

  1. Python学习——常见的字符串匹配
  2. isfull mysql_MySQL数据库之MySQL 出现 The table is full 的解决方法
  3. 广联达文件被锁怎么修复_事无巨细的绕过Apple id教程+修复蜂窝数据/电话
  4. OpenCV_02 图像的基本操作:图像IO+绘制图形+像素点+属性+图像通道+色彩空间的改变
  5. Web框架——Flask系列之Jinja2自带过滤器(三)
  6. LeetCode 2131. 连接两字母单词得到的最长回文串
  7. LeetCode 1758. 生成交替二进制字符串的最少操作数(DP)
  8. TensorFlow 2.0 - Hub 模型复用
  9. 基于感知机Perceptron的鸢尾花分类实践
  10. 剑指Offer - 面试题62. 圆圈中最后剩下的数字(约瑟夫环 递推公式)