day20 派生属性和方法,钻石继承
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 派生属性和方法,钻石继承相关推荐
- Kotlin 类、属性、方法、继承、多态
Kotlin 类.属性.方法.继承.多态 一.Kotlin 类 1. kotlin 定义类 使用 open 修饰类,表明可被子类继承 使用 open 修饰属性,表明可被子类覆写 /*** Kotlin ...
- python(11)—— 面向对象编程基础(对象,类,属性,封装,继承,多态)
把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化( ...
- 深入super,看Python如何解决钻石继承难题
1. Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object):def __init__ ...
- python类中的函数调用关系_Python中类的内置方法与继承关系实例
1.类的内置方法 Python内部类: 所谓内部类,就是在类的内部定义的类,主要目的是为了更好的抽象现实世界. 例子: 汽车是一个类,汽车的底盘轮胎也可以抽象为类,将其定义到汽车内中,而形成内部类, ...
- Python super钻石继承
1. Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object):def __init__ ...
- python---之super()继承,解决钻石继承难题
1. Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object):def __init__ ...
- Python super(钻石继承)
1. Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object):def __init__ ...
- python 钻石继承_python3--object类,继承与派生,super方法,钻石继承问题
python3--object类,继承与派生,super方法,钻石继承问题 发布时间:2018-04-13 20:38:05编辑:Run阅读(1914) 昨天内容复习 组合:什么有什么的关系(例:老师 ...
- Python类与对象最全总结大全(类、实例、属性方法、继承、派生、多态、内建函数)
目录 面向对象编程 常用术语/名词解释 抽象/实现 封装/接口 合成 派生/继承/继承结构 泛化/特化 多态 自省/反射 访问限制 私有属性和公有属性 私有方法的设置 类 创建类 声明与定义 类属性 ...
最新文章
- DM642图像平移程序学习
- 列表解析和生成器表达式
- VB中使用PNG格式图片的一种新方法
- SharePoint 2010 Form Authentication (SQL) based on existing database
- java图片处理开源项目_如何处理离开开源项目
- python工资一般多少-Python工资多少?就业发展前景怎么样?
- 2017ICPC北京 J:Pangu and Stones(区间DP)
- 获取IP及判断IP是否在区间
- SqlServer存储过程基础
- s3c2440的GPIO驱动
- 论文学习13Reconstructing the house from the ad: Structured prediction on real estate classifieds(实体关系抽取)
- Java、十六进制转二进制
- WEB视频自适应(下)
- 【Visual Studio 2013中文语言包安装】
- SQL数据库性能胯了,换 SSD硬盘就能解决问题?
- 华为魔术2手机拆机图解_荣耀Magic2做工如何?荣耀Magic2拆解图解评测 (全文)
- Octane 2022 预览版来了 -设计师们的福音
- c语言开头的作用是什么,C语言为什么开头都加;#includestdio.h有什么作用?
- 渣土车智能识别检测 yolov5
- 灰度图学习_为什么灰度图是灰色的??
热门文章
- Python学习——常见的字符串匹配
- isfull mysql_MySQL数据库之MySQL 出现 The table is full 的解决方法
- 广联达文件被锁怎么修复_事无巨细的绕过Apple id教程+修复蜂窝数据/电话
- OpenCV_02 图像的基本操作:图像IO+绘制图形+像素点+属性+图像通道+色彩空间的改变
- Web框架——Flask系列之Jinja2自带过滤器(三)
- LeetCode 2131. 连接两字母单词得到的最长回文串
- LeetCode 1758. 生成交替二进制字符串的最少操作数(DP)
- TensorFlow 2.0 - Hub 模型复用
- 基于感知机Perceptron的鸢尾花分类实践
- 剑指Offer - 面试题62. 圆圈中最后剩下的数字(约瑟夫环 递推公式)