python_97_类的继承2
# 经典类与新式类差别主要体现在多继承上
#多继承是从左到有
class People():#经典类
#class People(object):#新式类
def __init__(self,name,age):
self.Name=name
self.Age=age
self.friends=[]
def eat(self):
print('%s is eating'%self.Name)
def talk(self):
print('%s is talking'%self.Name)
def sleep(self):
print('%s is sleeping'%self.Name) class Relationship(object):
def make_friends(self,friend):
print('%s is naking friends with %s'%(self.Name,friend.Name))
self.friends.append(friend)#括号内不能写friend.Name(只是一个字符串),比如改名之后将不顶用,还是以前的名字
class bianxinren(People):#继承
pass#可以什么也不做,之继承
m1=bianxinren('变性人','20')
m1.eat() class Man(People):#继承
def piao(self):
print('%s is piaoing...20s...done'%self.Name)
def sleep(self):#给父类方法增加新功能
People.sleep(self)#不加此语句,将覆盖父类的sleep
print('%s 睡的时间长'%self.Name)
m2=Man('男人','20')
m2.piao()
m2.sleep() class Woman(People,Relationship):#从左到有,先继承People,再继承Relationship
def __init__(self,name,age,type_breast):#重构参数,对构造函数进行重构
#People.__init__(self,name,age)#经典类调用父类,如果有两个父类,需要写两次此代码,用super就不用写两遍,如下
#Relationship.__init__(self,good)假设Relationship.__init__有good
#可将上一步改为self.relationgship=Relationship(self,good),此步属于组合
super(Woman,self).__init__(name,age)#新式类调用父类的另一种方法,此方法更方便
self.type_breast=type_breast
print('%s的罩杯:%s'%(self.Name,self.type_breast))
def born(self):
print('%s is born a baby'%self.Name)
m3=Woman('女人','25','C')
m3.born()
# m3.piao()不能执行,是别的子类的方法 m3.make_friends(m2)
m3.Name='好女人'
print(m3.friends[0].Name)
在python2中经典类是按照深度优先进行继承的,新式类是按照广度优先来进行继承的
在python3中经典类和新式类均是按照广度优先来继承的

参考:http://www.cnblogs.com/alex3714/articles/5188179.html
python_97_类的继承2的更多相关文章
- UML类图(上):类、继承和实现
面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- (转)Java:类与继承
原文地址: http://www.cnblogs.com/dolphin0520/p/3803432.html 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大 ...
- iBatis.net 类的继承extends和懒加载
<resultMaps> <resultMap id="FullResultMap" class="t_c_team_member_permission ...
- python 类定义 继承
0 前言 系统:win7 64bit IDE : python(x,y) 2.7.6.1 IDE集成的解释器:Python 2.7.6 (default, Nov 10 2013, 19:24:18) ...
- JS原型继承和类式继承
前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...
- Java编程里类的继承
今天,我们将要讨论的内容是Java里面类的继承的相关概念. 说到继承,我相信大家都不陌生.生活中,子承父业,子女继承父母的财产,这就是继承.实际上,Java里的继承也是如此.对于一个类来说,它的数据成 ...
- Java:类与继承
Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知 ...
- swift_Class类的继承
//: Playground - noun: a place where people can play var str = "Hello, playground" //***** ...
随机推荐
- 记一次前端面试~终于拿到理想中的offer!
2019年已经过去一半,终于拿到一直想去的公司offer,也算是实现了今年的一个小目标. 由于这家公司是我从去年到现在最想去的公司,本次换工作一直没有投,希望先积累下面试经验再投. 没有想到居然先在b ...
- 散列表(Hash table)及其构造
散列表(Hash table) 散列表,是根据关键码值(Key value)而直接进行访问的数据结构.它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列函数,存放记录 ...
- selenium IDE插件下载
1.在https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/中下载Firefox的selenium-ide插件: 2.之后在Firef ...
- SpringMVC 控制器写多个方法(非注解方式)
Controller类有两种方法 1,implements Controller(实现Controller接口) 2,extends MultiActionController(继承 MultiAct ...
- Acwing 98-分形之城
98. 分形之城 城市的规划在城市建设中是个大问题. 不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现. 而这座名为 Fractal 的城市设想了这样 ...
- 我的省选 Day -15
Day -15 23:22:45 还有十几天就要去参加省选啦~,今天开始写日记记录一下,所以今天是第负十五天. 今天是阶段考的第二天(由于奥赛不用考试的我7:30才慢悠悠地到机房 早上学习动态DP, ...
- [洛谷P4315] 月下”毛景“树
题目链接: 点我 题目分析: 树剖.将边权下放到下方点上(为什么要选深度更深的点?一个父亲可能对应多个儿子,但一个儿子只有一个父亲,即可以保证每个点只保存一条边权)成为经典点权+树剖裸题 注意链计算时 ...
- Qconf安装文档
1.操作系统配置(以root用户执行) 1)安装编译工具 cmake(已经安装过可以跳过) yum install -y cmake 2.安装Qconf 1)下载安装源码 wget http://10 ...
- HDU 1087 E - Super Jumping! Jumping! Jumping! DP
http://acm.hdu.edu.cn/showproblem.php?pid=1087 设dp[i]表示去到这个位置时的最大和值.(就是以第i个为结尾的时候的最大值) 那么只要扫描一遍dp数组, ...
- windows黑窗口关于java程序的常用命令
1.启动java程序 我要运行:E:\code\nhtask下的ElectricEye-0.0.1-SNAPSHOT.jar程序 #切换到程序目录cd E:\code\nhtaskE: java -j ...