Python 继承和组合 接口
#解决代码重用的问题,减少代码冗余 #继承是一种什么‘是’什么的关系 class People: def __init__(self, name, age): # print('People.__init__') self.name = name self.age = age def walk(self): print('%s is walking' %self.name) class Teacher(People): pass class Student(People): pass # t=Teacher() # print(t.name,t.age) # print(t.__dict__) # t.walk() # s=Student() # print(s.name,s.age) # s.walk() #==================== class People: def __init__(self, name, age,sex): self.name = name self.age = age self.sex=sex def walk(self): print('%s is walking' % self.name) def foo(self): print('from father %s' %self.name) class Teacher(People): school = '偶的博爱' #__init__(t,,,) def __init__(self, name, age,sex,level,salary): People.__init__(self,name,age,sex) #People.__init__(t,,'male') #t.name='egon' #t.age= #t.sex='male' self.level=level self.salary=salary def teach(self): print('%s is teaching' %self.name) def foo(self): People.foo(self) print('from teacher') class Student(People): def __init__(self, name, age,sex,group): People.__init__(self, name, age, sex) self.group=group def study(self): print('%s is studying' %self.name) t=Teacher(,,) #__init__(t,,,) t.foo() # # class Teacher: # school = '偶的博爱' # def __init__(self, name, age): # self.name = name # self.age = age # def teach(self): # print('%s is teaching' %self.name) # def walk(self): # print('%s is walking' %self.name) # # # class Student: # def __init__(self, name, age): # self.name = name # self.age = age # # def study(self): # print('%s is studying' %self.name) # def walk(self): # print('%s is walking' %self.name)
继承
#继承是用来创建新的类的一种方式,好处是可以减少重复代码 #继承是类与类之间的关系,是一种什么是什么的关系 #组合:是一种什么有什么的关系,也是为了减少重复代码 class People: def __init__(self, name, age, year, mon, day): self.name = name self.age = age self.birth = Date(year, mon, day) def walk(self): print('%s is walking' % self.name) class Date: def __init__(self,year,mon,day): self.year=year self.mon=mon self.day=day def tell_birth(self): print('出生于<%s>年 <%s>月 <%s>日' % (self.year,self.mon,self.day)) class Teacher(People): def __init__(self, name, age, year, mon, day,level,salary): People.__init__(self,name,age,year,mon,day) self.level=level self.salary=salary def teach(self): print('%s is teaching' %self.name) class Student(People): def __init__(self, name, age, year, mon, day,group): People.__init__(self,name,age,year,mon,day) self.group=group def study(self): print('%s is studying' %self.name) # t=Teacher(,,,) # print(t.name,t.age) # print(t.birth) # t.birth.tell_birth() # print(t.birth.year) # print(t.birth.mon) # print(t.birth.day) class Course: def __init__(self,name,price,period): self.name=name self.price=price self.period=period def tell_info(self): print('课程名<%s> 价钱<%s> 周期<%s>' %(self.name,self.price,self.period)) #===================================== # class Date: # def __init__(self,year,mon,day): # self.year=year # self.mon=mon # self.day=day # # def tell_birth(self): # print('出生于<%s>年 <%s>月 <%s>日' % (self.year,self.mon,self.day)) # # class Teacher: # def __init__(self,name,age,birth): # self.name=name # self.age=age # self.birth=birth # # def teach(self): # print('%s is teaching' %self.name) # # t_birth=Date(,,) # t=Teacher(,t_birth)
组合
Python 继承和组合 接口的更多相关文章
- python 继承与组合
一.组合 #老师 课程 生日 class Course: def __init__(self,name,period,price): self.name = name self.period = pe ...
- [Think In Java]基础拾遗1 - 对象初始化、垃圾回收器、继承、组合、代理、接口、抽象类
目录 第一章 对象导论第二章 一切都是对象第三章 操作符第四章 控制执行流程第五章 初始化与清理第六章 访问权限控制第七章 复用类第九章 接口 第一章 对象导论 1. 对象的数据位于何处? 有两种方式 ...
- 【Python基础】lpthw - Exercise 44 继承与组合
一.继承 原则:大部分使用继承的场合都可以用组合取代或者简化,而多重继承则需要不惜一切的避免. 1. 什么是继承 继承:用于指明一个类的大部分或者全部功能都是从一个父类获得的.此时,父类的实例的所有动 ...
- Python面向对象的三大特性之继承和组合
继承和组合 一.组合 组合:组合指的是,在一个类中以另外一个类的对象(也就是实例)作为数据属性,称为类的组合 也就是说:一个类的属性是另一个类的对象,就是组合 例子: 圆环是由两个圆组成的,圆环的面积 ...
- Python 入门基础20 --面向对象_继承、组合
今日内容 组合:自定义类的对象作为类的属性 继承:父类与子类.多继承 1.组合 将自定义类的对象作为类的属性 class Teacher: def __init__(self, name): self ...
- Python设计模式 - 基础 - 类/接口之间的六种关系
在程序中需要把世间万物抽象成相应的类,现实世界中物与物之间的关系和程序中类与类之间的关系相对应,因为世间万物是普遍联系的,所以程序中类与类之间也不是孤立的.在系统分析和框架设计中,根据面向对象机制的三 ...
- Java继承与组合
Java继承与组合 继承 java 中使用extends关键字表示继承关系,当创建一个类时,如果没有明确指出要继承的类,则是隐式地从根类Object进行继承. 子类继承父类的成员变量 子类能够继承父类 ...
- Java中的继承与组合(转载)
本文主要说明Java中继承与组合的概念,以及它们之间的联系与区别.首先文章会给出一小段代码示例,用于展示到底什么是继承.然后演示如何通过“组合”来改进这种继承的设计机制.最后总结这两者的应用场景,即到 ...
- Java中的继承与组合
本文主要说明Java中继承与组合的概念,以及它们之间的联系与区别.首先文章会给出一小段代码示例,用于展示到底什么是继承.然后演示如何通过“组合”来改进这种继承的设计机制.最后总结这两者的应用场景,即到 ...
随机推荐
- css自定义动画在微信中无法执行的原因
这是我去年年底遇到的一个问题, 在这个过程中我发现了一个比较有趣的问题. 我们在做抽奖的时候,微信分享到朋友圈的页面里,安卓机器无法执行页面中的自定义动画(元宝的位移,进入按钮的放大缩小等等).这让我 ...
- php利用ob缓存机制实现页面静态化方法全解
首先介绍一下php中ob缓存常用到的几个常用函数 ob_start():开启缓存机制 ob_get_contents():获取ob缓存中的内容 ob_clean()清除ob缓存中的内容,但不关闭缓存 ...
- 纯 CSS 实现波浪效果!
一直以来,使用纯 CSS 实现波浪效果都是十分困难的. 因为实现波浪的曲线需要借助贝塞尔曲线. 而使用纯 CSS 的方式,实现贝塞尔曲线,额,暂时是没有很好的方法. 当然,借助其他力量(SVG.CAN ...
- jmeter连接配置带跳板机(SSH)的mysql服务器
jmeter连接配置mysql服务器时,如果数据库服务器没有通过ssh连接,则只需要配置相应的jdbc参数就可以了,即请求域名或ip地址:3306,如果数据库服务器是通过SSH连接的,那需要通过中间远 ...
- nginx解决方案
nginx解决方案 1.方案场景 现有多台应用服务器,要实现所有的访问先访问到反向代理服务器上再转内部对应的应用. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的 ...
- tensorflow Sigmoid 应用
1.函数 函数:f(z) = 1 / (1 + exp( − z)) 导数:f(z)' = f(z)(1 − f(z)) 2.tensorflow实现 #!/usr/bin/env python # ...
- (转)memcached学习笔记1(windows 7 64bit 环境下安装memcached)
windows 7 64bit 环境下安装memcached 1.下载后解压到D:\memcached(下载地址:memcached-win64下载地址) 2.安装到windows服务,打开cmd命令 ...
- Python学习记录----类型匹配(转)
import types aaa = 0 print type(aaa) if type(aaa) is types.IntType: print "the type of aaa is i ...
- FCKEditor在jsp页面中的配置方法
大家在使用博客园或者是在网站上面发表一些东西的时候,往往会发现,输入文字的不是一个简单的文本框,而是一个类似于word的在线编辑环境.这个插件叫FCKEditor,使用这个插件要进行一定程度的配置,下 ...
- 初学 Python(十三)——匿名函数
初学 Python(十三)--匿名函数 初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做 ...