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" //***** ...
随机推荐
- MVC用户验证
MVC提供了四种Filter(钩子),用于在Action执行之前或者之后,我们能够做一些事情,比如说判断有没有登录,比如说判断有没有权限. IAuthorizationFilter:在所有Filter ...
- 最优化理论-Simplex线性规划
Sorry,各位,现在这里面啥也没,之所以开这篇文章,是防止以后用得到:现在研究这些,总感觉有些不合适,本人还不到那个层次:如果之后有机会继续研究simplex-线性规划问题,再回来参考下面的链接进 ...
- RenderTexture
https://docs.unity3d.com/Manual/class-RenderTexture.html Size: 图片像素尺寸,这个size可以直接在脚本里通过width和height动态 ...
- SQL 截取字段空格之前的数据
MYSQL group by left(city,LOCATE(' ',city)) SQL select a,left(a,charindex( ' ',a)) FROM test SELECT g ...
- java利用URL发送get和post请求
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- spring框架_AOP和注解
1.什么是AOP :全称是Aspect Oriented Programming即:面向切面编程. 简单来说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础 ...
- 不使用三方包时,如何在ThinkSNS中建立优雅的用户权限管理
什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+).Thin ...
- NOIp知识集合 By cellur925
基本算法 快速幂 ll ksm(ll a,ll b) { ll ans=; while(b) { ) ans=ans*a%p; b>>=; a=a*a%p; } return ans; } ...
- 整理的各种模板 (随时弃坑emmmmm)
线段树: #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> ...
- 题解 P1006 传纸条
传送门 其实我觉得这个跟P1004挺类似(又是动规) 题解P1004 #include<iostream> #include<cstdio> #include<cstri ...